(* Basic_2A1: was just: lleq_cpxs_trans *)
lemma reqx_cpxs_trans (G):
- ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈* T1 → ∀L2. L2 ≛[T0] L0 →
- ∃∃T. ❪G,L2❫ ⊢ T0 ⬈* T & T ≛ T1.
-#G #L0 #T0 #T1 #H @(cpxs_ind_dx … H) -T0 /2 width=3 by ex2_intro/
-#T0 #T #HT0 #_ #IH #L2 #HL2
-elim (reqx_cpx_trans … HL2 … HT0) #U1 #H1 #H2
-elim (IH L2) -IH /2 width=5 by cpx_reqx_conf_dx/ -L0 #U2 #H3 #H4
-elim (teqx_cpxs_trans … H2 … H3) -T #U0 #H2 #H3
-/3 width=5 by cpxs_strap2, teqx_trans, ex2_intro/
+ ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈* T1 → ∀L2. L2 ≛[T0] L0 → ❪G,L2❫ ⊢ T0 ⬈* T1.
+#G #L0 #T0 #T1 #H @(cpxs_ind_dx … H) -T0 //
+#T0 #T #H0T0 #_ #IH #L2 #HL2
+lapply (reqx_cpx_trans … HL2 … H0T0) #H2T0
+lapply (IH L2 ?) -IH /2 width=5 by cpx_reqx_conf_dx/ -L0 #H2T1
+/2 width=3 by cpxs_strap2/
qed-.
(* Basic_2A1: was just: cpxs_lleq_conf *)
lemma cpxs_reqx_conf (G):
- ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈* T1 → ∀L2. L0 ≛[T0] L2 →
- ∃∃T. ❪G,L2❫ ⊢ T0 ⬈* T & T ≛ T1.
+ ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈* T1 → ∀L2. L0 ≛[T0] L2 → ❪G,L2❫ ⊢ T0 ⬈* T1.
/3 width=3 by reqx_cpxs_trans, reqx_sym/ qed-.
(* Basic_2A1: was just: cpxs_lleq_conf_dx *)