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

Axiom E_CAbsCong2
: ∀ (L : atoms) (G : context) (D : available_props) (a b : tm) (phi1 : constraint)
(B : tm),
(∀ 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))
(open_tm_wrt_co B (g_Var_f c))) → DefEq G D (a_UCAbs a) (a_UCAbs b) (a_CPi phi1 B).