(* ------------------------------------------------------------- *)

(* Challenging lemma: coercible terms have coercible types.   NOTE: this result for AnnDefEq is *not* AnnPropWff G (Eq A B).  *)
Lemma AnnDefEqAnnIso_regularity :
(forall G0 a A, AnnTyping G0 a A -> True ) /\
(forall G0 phi,   AnnPropWff G0 phi -> True ) /\
(forall G D g p1 p2, AnnIso G D g p1 p2 ->
AnnPropWff G p1 /\ AnnPropWff G p2) /\
(forall G D g A B,   AnnDefEq G D g A B ->
exists C1 C2 g', AnnTyping G A C1 /\ AnnTyping G B C2 /\ AnnDefEq G (dom G) g' C1 C2) /\
(forall G0, AnnCtx G0 -> True).