Definition  AnnDefEq_regularity :
(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) :=
fourth AnnDefEqAnnIso_regularity.
Definition AnnIso_regularity :
forall G D g phi1 phi2, AnnIso G D g phi1 phi2 ->
AnnPropWff G phi1 /\ AnnPropWff G phi2 :=
third AnnDefEqAnnIso_regularity.
(* --------------------------------------------------------- *)
(* Smart constructors for the annotated language *)

Lemma An_Trans2
: ∀ (G : context) (D : available_props) (g1 g2 : co)
(a b a1 : tm),
AnnDefEq G D g1 a a1
→ AnnDefEq G D g2 a1 b
→ AnnDefEq G D (g_Trans g1 g2) a b .