proposition: Lemma refine_If_Then_Else_Bind {A B} : forall i (t e : Comp A) (b : A -> Comp B), refine (a <- If i Then t Else e; b a) (If i Then (a <- t; b a) Else (a <- e; b a)).
proof: Proof. intros; destruct i; simpl; reflexivity. Qed.
imports: Coq.Strings.String Coq.Sets.Ensembles Coq.Bool.Bool Fiat.Common Fiat.Common.BoolFacts Fiat.Common.LogicFacts Fiat.Computation.Core Fiat.Computation.Monad Fiat.Computation.SetoidMorphisms Fiat.Computation.Refinements.Tactics