]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/substitution/lleq_alt.ma
- advances in the theory of cofrees
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / substitution / lleq_alt.ma
index 470fa107f8bbedba8372d055410907d12d369a94..a209206afbfd772879bb8f01c9fbe57c8c5f5d34 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-include "basic_2/relocation/llpx_sn_alt.ma".
+include "basic_2/substitution/llpx_sn_alt1.ma".
 include "basic_2/substitution/lleq.ma".
 
 (* LAZY EQUIVALENCE FOR LOCAL ENVIRONMENTS **********************************)
@@ -22,19 +22,32 @@ include "basic_2/substitution/lleq.ma".
 theorem lleq_intro_alt: ∀L1,L2,T,d. |L1| = |L2| →
                         (∀I1,I2,K1,K2,V1,V2,i. d ≤ yinj i → (∀U. ⇧[i, 1] U ≡ T → ⊥) →
                            ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                           â\88§â\88§ I1 = I2 & V1 = V2 & K1 â\8b\95[V1, 0] K2
-                        ) â\86\92 L1 â\8b\95[T, d] L2.
-#L1 #L2 #T #d #HL12 #IH @llpx_sn_intro_alt // -HL12
+                           â\88§â\88§ I1 = I2 & V1 = V2 & K1 â\89¡[V1, 0] K2
+                        ) â\86\92 L1 â\89¡[T, d] L2.
+#L1 #L2 #T #d #HL12 #IH @llpx_sn_intro_alt1 // -HL12
 #I1 #I2 #K1 #K2 #V1 #V2 #i #Hid #HnT #HLK1 #HLK2
 elim (IH … HnT HLK1 HLK2) -IH -HnT -HLK1 -HLK2 /2 width=1 by and3_intro/
 qed.
 
-theorem lleq_inv_gen: ∀L1,L2,T,d. L1 ⋕[T, d] L2 →
+theorem lleq_ind_alt: ∀S:relation4 ynat term lenv lenv.
+                      (∀L1,L2,T,d. |L1| = |L2| → (
+                         ∀I1,I2,K1,K2,V1,V2,i. d ≤ yinj i → (∀U. ⇧[i, 1] U ≡ T → ⊥) →
+                         ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
+                         ∧∧ I1 = I2 & V1 = V2 & K1 ≡[V1, 0] K2 & S 0 V1 K1 K2
+                      ) → S d T L1 L2) →
+                      ∀L1,L2,T,d. L1 ≡[T, d] L2 → S d T L1 L2.
+#S #IH1 #L1 #L2 #T #d #H @(llpx_sn_ind_alt1 … H) -L1 -L2 -T -d
+#L1 #L2 #T #d #HL12 #IH2 @IH1 -IH1 // -HL12
+#I1 #I2 #K1 #K2 #V1 #V2 #i #Hid #HnT #HLK1 #HLK2
+elim (IH2 … HnT HLK1 HLK2) -IH2 -HnT -HLK1 -HLK2 /2 width=1 by and4_intro/
+qed-.
+
+theorem lleq_inv_alt: ∀L1,L2,T,d. L1 ≡[T, d] L2 →
                       |L1| = |L2| ∧
                       ∀I1,I2,K1,K2,V1,V2,i. d ≤ yinj i → (∀U. ⇧[i, 1] U ≡ T → ⊥) →
                       ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                      â\88§â\88§ I1 = I2 & V1 = V2 & K1 â\8b\95[V1, 0] K2.
-#L1 #L2 #T #d #H elim (llpx_sn_inv_gen … H) -H
+                      â\88§â\88§ I1 = I2 & V1 = V2 & K1 â\89¡[V1, 0] K2.
+#L1 #L2 #T #d #H elim (llpx_sn_inv_alt1 … H) -H
 #HL12 #IH @conj //
 #I1 #I2 #K1 #K2 #V1 #V2 #i #Hid #HnT #HLK1 #HLK2
 elim (IH … HnT HLK1 HLK2) -IH -HnT -HLK1 -HLK2 /2 width=1 by and3_intro/