--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+(*
+include "basic_2/reduction/lpr_ldrop.ma".
+
+include "basic_2/unfold/fsups.ma".
+include "basic_2/reducibility/lpr_ldrop.ma".
+
+lamma pippo: ∀L1,L2,T1,T2. ⦃L1, T1⦄ ⊃ ⦃L2, T2⦄ → ∀V1,i. ⇧[i, 1] V1 ≡ T1 → T2 = #i → ⊥.
+#L1 #L2 #T1 #T2 #H elim H -L1 -L2 -T1 -T2
+[ #I #L1 #V #W1 #j #H1 #H2
+ elim (lift_inv_lref2 … H1) -H1 * #H1 #H3
+
+ HVT2 : ()
+ HV2 : (K2⊢V➡V2)
+
+
+thaorem cpr_trans_lpr: ∀L1,T1,T. L1 ⊢ T1 ➡ T → ∀L2. L1 ⊢ ➡ L2 →
+ ∀T2. L2 ⊢ T ➡ T2 →
+ (⦃L2, T2⦄ ⊃* ⦃L1, T1⦄ → ⊥) ∨ T1 = T.
+#L1 #T1 @(fsupp_wf_ind … L1 T1) -L1 -T1 #n #IH #L1 * [|*]
+[ #I #Hn #T #H1 #L2 #HL12 #T2 #HT2 destruct -IH
+ elim (cpr_inv_atom1 … H1) -H1
+ [ #H destruct
+ elim (cpr_inv_atom1 … HT2) -HT2
+ [ #H destruct //
+ | * #K2 #V #V2 #i #HLK2 #HV2 #HVT2 #H destruct //
+ ]
+ | * #K1 #V1 #V #i #HLK1 #HV1 #HVT #H destruct
+ lapply (ldrop_pair2_fwd_fw … HLK1 (#i)) #HKV1
+ elim (lpr_ldrop_conf … HLK1 … HL12) -HLK1 -HL12 #X #H #HLK2
+ elim (lpr_inv_pair1 … H) -H #K2 #V0 #HK12 #_ #H destruct
+ lapply (ldrop_fwd_ldrop2 … HLK2) -V0 #HLK2
+ elim (cpr_inv_lift1 … HT2 … HLK2 … HVT) -HT2 -HLK2 -HVT #V2 #HVT2 #HV2
+ @or_introl #H
+
+
+
+
+
+
+ elim (lift_inv_lref2 … HVT2) -HVT2 * #H #_
+ [ elim (lt_zero_false … H)
+ | >commutative_plus in H; >plus_plus_comm_23 #H
+ elim (le_plus_xySz_x_false … H)
+ ]
+ ]
+| #a #I #V1 #T1 #Hn #X1 #H1 #L2 #HL12 #X2 #H2
+ elim (cpr_inv_bind1 … H1) -H1 *
+ [ #V #T #HV1 #HT1 #H destruct
+ elim (cpr_inv_bind1 … H2) -H2 *
+ [ #V2 #T2 #HV2 #HT2 #H destruct
+ elim (IH … HV1 … HV2) // #HV12 destruct
+ [ @or_introl #H destruct /2 width=1/
+ | elim (IH … HT1 … HT2) // /2 width=1/ -L1 -L2 #HT12 destruct
+ @or_introl #H destruct /2 width=1/
+ ]
+ | #T2 #HT2 #HXT2 #H1 #H2 destruct
+ elim (IH … HT1 … HT2) // /2 width=1/ -L1 -L2 #HT12 destruct
+ | elim (term_eq_dec V1 V) #HV1 destruct
+
+ ]
+ | #Y1 #HTY1 #HXY1 #H11 #H12 destruct
+ elim (lift_total (+ⓓV1.T1) 0 1) #Y2 #HXY2
+ lapply (cpr_lift … H2 (L2.ⓓV1) … HXY1 … HXY2) /2 width=1/ -X1 /4 width=5/
+ ]
+| #I #V1 #T1 #Hn #X1 #H1 #L2 #HL12 #X2 #H2
+ elim (cpr_inv_flat1 … H1) -H1 *
+ [ #V #T #HV1 #HT1 #H destruct
+ elim (cpr_inv_flat1 … H2) -H2 *
+ [ #V2 #T2 #HV2 #HT2 #H destruct /3 width=5/
+ | #HX2 #H destruct /3 width=5/
+ ]
+ | #HX1 #H destruct /3 width=5/
+]
+qed-.
+*)