(* ------- smart constructors --------- *)

Axiom E_CPiCong2  : ∀ (L : atoms) (G : context) (D : available_props) (phi1 : constraint)
(A : tm) (phi2 : constraint) (B : tm),
Iso G D phi1 phi2
→ (∀ c : atom,
c `notin` L
→ DefEq ([(c, Co phi1)] ++ G) D (open_tm_wrt_co A (g_Var_f c))
(open_tm_wrt_co B (g_Var_f c)) a_Star)
→ DefEq G D (a_CPi phi1 A) (a_CPi phi2 B) a_Star.