Goal forall d e : frame, d = e -> true = eqf d e.
intros.
elim H.
apply eqf7.
Save eqf_elim.
Goal forall d e : frame, true = eqf d e -> d = e.
intros.
elim (eqf8 d e).
elim H.
elim eqf5.
apply refl_equal.
Save eqf_intro.
Goal forall d e : frame, false = eqf 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 (eqf d e = false).
elim H0.
elim eqf7.
assumption.
apply sym_equal.
assumption.
Save eqf_intro'.
Section FRAME2.
Parameter Frame : Set.
Variable b b1 b2 : bit.
Variable d d1 d2 : D.
Variable e e' : Frame.
Parameter Tuple : bit -> D -> Frame.
Parameter lce : Frame.
Parameter eqF : Frame -> Frame -> bool.
Parameter ifF : bool -> Frame -> Frame -> Frame.

Axiom eqF8 : ifF (eqF e e') e e' = e'.