-lemma fpbs_cpx_tdneq_trans: ∀h,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≥[h] ⦃G2, L2, T2⦄ →
- ∀U2. ⦃G2, L2⦄ ⊢ T2 ⬈[h] U2 → (T2 ≛ U2 → ⊥) →
- ∃∃U1. ⦃G1, L1⦄ ⊢ T1 ⬈[h] U1 & T1 ≛ U1 → ⊥ & ⦃G1, L1, U1⦄ ≥[h] ⦃G2, L2, U2⦄.
-#h #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 #HnTU2
-elim (fpbs_inv_star … H) -H #G0 #L0 #L3 #T0 #T3 #HT10 #H10 #HL03 #H32
-elim (fdeq_cpx_trans … H32 … HTU2) -HTU2 #T4 #HT34 #H42
-lapply (fdeq_tdneq_repl_dx … H32 … H42 … HnTU2) -T2 #HnT34
-lapply (lpxs_cpx_trans … HT34 … HL03) -HT34 #HT34
-elim (fqus_cpxs_trans_tdneq … H10 … HT34 HnT34) -T3 #T2 #HT02 #HnT02 #H24
-elim (tdeq_dec T1 T0) [ #H10 | -HnT02 #HnT10 ]
+lemma fpbs_cpx_tneqg_trans (S):
+ reflexive … S → symmetric … S → Transitive … S →
+ (∀s1,s2. Decidable (S s1 s2)) →
+ ∀G1,G2,L1,L2,T1,T2. ❪G1,L1,T1❫ ≥ ❪G2,L2,T2❫ →
+ ∀U2. ❪G2,L2❫ ⊢ T2 ⬈ U2 → (T2 ≛[S] U2 → ⊥) →
+ ∃∃U1. ❪G1,L1❫ ⊢ T1 ⬈ U1 & T1 ≛[S] U1 → ⊥ & ❪G1,L1,U1❫ ≥ ❪G2,L2,U2❫.
+#S #H1S #H2S #H3S #H4S #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 #HnTU2
+elim (fpbs_inv_star S … H) -H // #G0 #L0 #L3 #T0 #T3 #HT10 #H10 #HL03 #H32
+lapply (feqg_cpx_trans_cpx … H32 … HTU2) // #HTU32
+lapply (feqg_tneqg_trans … H32 … HnTU2) -HnTU2 // #HnTU34
+lapply (feqg_cpx_trans_feqg … H32 … HTU2) // -T2 #H32
+lapply (lpxs_cpx_trans … HTU32 … HL03) -HTU32 #HTU32
+elim (fqus_cpxs_trans_tneqg … H10 … HTU32 HnTU34) -T3 #T2 #HT02 #HnT02 #H2
+elim (teqg_dec S … T1 T0) [ #H10 | -HnT02 #HnT10 | // ]