Goal forall d e : D, d = e -> true = eqD d e.
intros.
elim H.
apply eqD7.
Save eqD_elim.
Goal forall d e : D, true = eqD d e -> d = e.
intros.
elim (eqD8 d e).
elim H.
elim eqD5.
apply refl_equal.
Save eqD_intro.
Goal forall d e : D, false = eqD d e -> d <> e.
intros.
red in |- *; intro.
cut (forall P : bool -> Prop, P true -> P false); intro L.
apply
(L
(fun P : bool =>
match P return Prop with
| true => True
| false => False
end)).
exact I.
intros.
elimtype (eqD d e = false).
elim H0.
elim eqD7.
assumption.
apply sym_equal.
assumption.
Save eqD_intro'.
Section FRAME1.
Parameter frame : Set.
Variable b b1 b2 : bit.
Variable d e : frame.
Parameter tuple : bit -> frame.
Parameter sce : frame.
Parameter eqf : frame -> frame -> bool.
Parameter iff : bool -> frame -> frame -> frame.

Axiom eqf4 : eqb b1 b2 = eqf (tuple b1) (tuple b2).