proposition: Theorem dmemo_get_correct: forall n, dmemo_get n dmemo_list = f n.
proof: Proof. intros n; unfold dmemo_get, dmemo_list. rewrite (memo_get_correct memo_val mf n); simpl. case (is_eq n n); simpl; auto; intros e. assert (e = eq_refl n). - apply eq_proofs_unicity. induction x as [| x Hx]; destruct y as [| y]. + left; auto. + right; intros HH; discriminate HH. + right; intros HH; discriminate HH. + case (Hx y). * intros HH; left; case HH; auto. * intros HH; right; intros HH1; case HH. injection HH1; auto. - rewrite H; auto. Qed.
imports: Eqdep_dec Streams