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

Axiom E_PiCong2 :  ∀ (L : atoms) (G : context) (D : available_props) rho (A1 B1 A2 B2 : tm),
DefEq G D A1 A2 a_Star
→ (∀ x : atom,
x `notin` L
→ DefEq ([(x, Tm A1)] ++ G) D (open_tm_wrt_tm B1 (a_Var_f x))
(open_tm_wrt_tm B2 (a_Var_f x)) a_Star)
→ DefEq G D (a_Pi rho A1 B1) (a_Pi rho A2 B2) a_Star.