proposition: Lemma If_Opt_Then_Else_DecodeBindOpt {A ResultT ResultT'} : forall (a_opt : option A) (t : A -> option (ResultT * B * CacheDecode)) (e : option (ResultT * B * CacheDecode)) (k : _ -> _ -> _ -> option (ResultT' * B * CacheDecode)), (`(w, b', cd') <- Ifopt a_opt as a Then t a Else e; k w b' cd') = (Ifopt a_opt as a Then (`(w, b', cd') <- t a; k w b' cd') Else (`(w, b', cd') <- e; k w b' cd')).
proof: Proof. destruct a_opt; simpl; intros; reflexivity. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Logic.Eqdep_dec Fiat.Computation Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.ComposeOpt Fiat.Narcissus.Formats.WordOpt Fiat.Narcissus.Formats.EnumOpt Fiat.Narcissus.Formats.Sequence Fiat.Narcissus.BaseFormats Fiat.Narcissus.BinLib.AlignedEncodeMonad Coq.Vectors.Vector Coq.ZArith.ZArith Bedrock.Word