Module ext_invert (subst : ext_subst_sig) <: ext_invert_sig.
Include subst.
Set Bullet Behavior "Strict Subproofs".
Set Implicit Arguments.

Lemma invert_a_Pi:
forall G rho A0 A B0,
Typing G (a_Pi rho A0 B0) A
-> DefEq G (dom G) A a_Star a_Star
/\ (exists L, forall x,
x `notin` L
-> Typing ([(x, Tm A0)] ++ G) (open_tm_wrt_tm B0 (a_Var_f x)) a_Star)
/\ Typing G A0 a_Star.