proposition: Lemma evalDet_step_done_evalDist : forall (A : Set)(eqd : eq_dec A)(c : Comp A) a a' s, evalDet_step c nil = (cs_done a s) -> evalDist c a' == if (eqd a a') then 1 else 0.
proof: Proof. induction c; intuition; simpl in *. inversion H; clear H; subst. destruct (e a0 a'); subst. destruct (eqd a' a'). intuition. congruence. destruct (eqd a0 a'); subst. congruence. intuition. destruct (evalDet_step c nil); discriminate. destruct n; discriminate. congruence. Qed.
imports: FCF.Comp FCF.DetSem FCF.DistSem FCF.Rat Arith FCF.StdNat FCF.Fold FCF.Limit Permutation ZifyNat