Module Type ext_invert_sig.
Include ext_subst_sig.
(* ---------- inversion lemmas ---------------- *)

Axiom invert_a_CPi: forall G phi A B0,
Typing G (a_CPi phi B0) A ->
DefEq G (dom G) A a_Star a_Star /\ (exists L, forall c, c `notin` L -> Typing ([(c, Co phi)] ++ G) (open_tm_wrt_co B0 (g_Var_f c) ) a_Star) /\ PropWff G phi.