]> matita.cs.unibo.it Git - helm.git/commitdiff
- some proposition name clashes removed
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 10 Nov 2017 18:12:48 +0000 (18:12 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 10 Nov 2017 18:12:48 +0000 (18:12 +0000)
- advances on lfsx_csx

matita/matita/contribs/lambdadelta/basic_2/i_static/tc_lfxs_fqup.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_lfpx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lfpx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfpxs_cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_csx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_fqup.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_fqup.ma
matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_fqup.ma
matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_fqus.ma
matita/matita/contribs/lambdadelta/basic_2/static/lfxs_fqup.ma

index ce56a3154b96f8d426bdeabd00911bef06f0543a..c92a4ad7b861832d3fa34ca6233ecc2e466e186d 100644 (file)
@@ -23,10 +23,10 @@ lemma tc_lfxs_refl: ∀R. (∀L. reflexive … (R L)) → ∀T. reflexive … (t
 /3 width=1 by lfxs_refl, inj/ qed.
 
 (* Basic_2A1: uses: TC_lpx_sn_pair TC_lpx_sn_pair_refl *)
-lemma tc_lfxs_pair: ∀R. (∀L. reflexive … (R L)) →
-                    ∀L,V1,V2. LTC … R L V1 V2 → ∀I,T. L.ⓑ{I}V1 ⪤**[R, T] L.ⓑ{I}V2.
+lemma tc_lfxs_pair_refl: ∀R. (∀L. reflexive … (R L)) →
+                         ∀L,V1,V2. LTC … R L V1 V2 → ∀I,T. L.ⓑ{I}V1 ⪤**[R, T] L.ⓑ{I}V2.
 #R #HR #L #V1 #V2 #H elim H -V2
-/3 width=3 by tc_lfxs_step_dx, lfxs_pair, inj/
+/3 width=3 by tc_lfxs_step_dx, lfxs_pair_refl, inj/
 qed.
 
 (* Advanced eliminators *****************************************************)
index 73cee45379ef37200a9daf6c01581ffed6c27f85..46aa78ace65e9f517327b58314639497c40c82b3 100644 (file)
@@ -61,9 +61,9 @@ qed-.
 lemma cpx_bind2: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈[h] V2 →
                  ∀I,T1,T2. ⦃G, L.ⓑ{I}V2⦄ ⊢ T1 ⬈[h] T2 →
                  ∀p. ⦃G, L⦄ ⊢ ⓑ{p,I}V1.T1 ⬈*[h] ⓑ{p,I}V2.T2.
-/4 width=5 by lfpx_cpx_trans, cpxs_bind_dx, lfpx_pair/ qed.
+/4 width=5 by lfpx_cpx_trans, cpxs_bind_dx, lfpx_pair_refl/ qed.
 
 lemma cpxs_bind2_dx: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈[h] V2 →
                      ∀I,T1,T2. ⦃G, L.ⓑ{I}V2⦄ ⊢ T1 ⬈*[h] T2 →
                      ∀p. ⦃G, L⦄ ⊢ ⓑ{p,I}V1.T1 ⬈*[h] ⓑ{p,I}V2.T2.
-/4 width=5 by lfpx_cpxs_trans, cpxs_bind_dx, lfpx_pair/ qed.
+/4 width=5 by lfpx_cpxs_trans, cpxs_bind_dx, lfpx_pair_refl/ qed.
index 2cfbc1a3f90c41a3090934c67644a2eb680d94cd..2067df1b301081c9450f9d794fbd00e4112c36dd 100644 (file)
@@ -38,7 +38,7 @@ elim (cpx_inv_abst1 … H1) -H1
 elim (tdneq_inv_pair … H2) -H2
 [ #H elim H -H //
 | -IHT #H lapply (csx_cpx_trans … o … HLT0) // -HT
-  #HT0 lapply (csx_lfpx_conf … HT0 … (L.ⓛW0)) -HT0 /4 width=1 by lfpx_pair/
+  #HT0 lapply (csx_lfpx_conf … HT0 … (L.ⓛW0)) -HT0 /4 width=1 by lfpx_pair_refl/
 | -IHW -HT /4 width=3 by csx_cpx_trans, cpx_pair_sn/
 ]
 qed.
@@ -52,7 +52,7 @@ elim (cpx_inv_abbr1 … H1) -H1 *
 [ #V1 #T1 #HLV1 #HLT1 #H destruct
   elim (tdneq_inv_pair … H2) -H2
   [ #H elim H -H //
-  | /4 width=3 by csx_cpx_trans, csx_lfpx_conf, lfpx_pair/
+  | /4 width=3 by csx_cpx_trans, csx_lfpx_conf, lfpx_pair_refl/
   | -IHV /4 width=3 by csx_cpx_trans, cpx_cpxs, cpx_pair_sn/
   ]
 | -IHV -IHT -H2
@@ -89,7 +89,7 @@ elim (cpx_inv_appl1 … HL) -HL *
 | -IHVT -H #b #V0 #V3 #W0 #W1 #T0 #T1 #HLV10 #HV03 #HLW01 #HLT01 #H1 #H2 destruct
   lapply (cpx_lifts_bi … HLV10 (Ⓣ) … (L.ⓓW0) … HV12 … HV03) -HLV10 -HV12 -HV03 /3 width=1 by drops_refl, drops_drop/ #HLV23
   @csx_abbr /2 width=3 by csx_cpx_trans/ -HV
-  @(csx_lfpx_conf … (L.ⓓW0)) /2 width=1 by lfpx_pair/ -W1
+  @(csx_lfpx_conf … (L.ⓓW0)) /2 width=1 by lfpx_pair_refl/ -W1
   /4 width=5 by csx_cpxs_trans, cpx_cpxs, cpx_flat/
 ]
 qed-.
index 898aac863f0ebc37f29339f981e2bc82e6e2ba02..e5369c116dc10c1da7647b1e3efb47a893e50a95 100644 (file)
@@ -20,9 +20,9 @@ include "basic_2/rt_computation/lfpxs_fqup.ma".
 (* Properties with uncounted context-sensitive rt-computation for terms *****)
 
 (* Basic_2A1: uses: lpxs_pair lpxs_pair_refl *)
-lemma lfpxs_pair: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈*[h] V2 →
-                  ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ⬈*[h, T] L.ⓑ{I}V2.
-/2 width=1 by tc_lfxs_pair/ qed.
+lemma lfpxs_pair_refl: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈*[h] V2 →
+                       ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ⬈*[h, T] L.ⓑ{I}V2.
+/2 width=1 by tc_lfxs_pair_refl/ qed.
 
 (* Basic_2A1: uses: lpxs_cpx_trans *)
 lemma lfpxs_cpx_trans: ∀h,G. s_r_transitive … (cpx h G) (lfpxs h G).
@@ -41,7 +41,7 @@ qed-.
 lemma cpxs_bind2: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈*[h] V2 →
                   ∀I,T1,T2. ⦃G, L.ⓑ{I}V2⦄ ⊢ T1 ⬈*[h] T2 →
                   ∀p. ⦃G, L⦄ ⊢ ⓑ{p,I}V1.T1 ⬈*[h] ⓑ{p,I}V2.T2.
-/4 width=3 by lfpxs_cpxs_trans, lfpxs_pair, cpxs_bind/ qed.
+/4 width=3 by lfpxs_cpxs_trans, lfpxs_pair_refl, cpxs_bind/ qed.
 
 (* Advanced inversion lemmas on uncounted rt-computation for terms **********)
 
@@ -52,7 +52,7 @@ lemma cpxs_inv_abst1: ∀h,p,G,L,V1,T1,U2. ⦃G, L⦄ ⊢ ⓛ{p}V1.T1 ⬈*[h] U2
 #U0 #U2 #_ #HU02 * #V0 #T0 #HV10 #HT10 #H destruct
 elim (cpx_inv_abst1 … HU02) -HU02 #V2 #T2 #HV02 #HT02 #H destruct
 lapply (lfpxs_cpx_trans … HT02 (L.ⓛV1) ?)
-/3 width=5 by lfpxs_pair, cpxs_trans, cpxs_strap1, ex3_2_intro/
+/3 width=5 by lfpxs_pair_refl, cpxs_trans, cpxs_strap1, ex3_2_intro/
 qed-.
 
 lemma cpxs_inv_abbr1: ∀h,p,G,L,V1,T1,U2. ⦃G, L⦄ ⊢ ⓓ{p}V1.T1 ⬈*[h] U2 → (
@@ -66,10 +66,10 @@ lemma cpxs_inv_abbr1: ∀h,p,G,L,V1,T1,U2. ⦃G, L⦄ ⊢ ⓓ{p}V1.T1 ⬈*[h] U2
   elim (cpx_inv_abbr1 … HU02) -HU02 *
   [ #V2 #T2 #HV02 #HT02 #H destruct
     lapply (lfpxs_cpx_trans … HT02 (L.ⓓV1) ?)
-    /4 width=5 by lfpxs_pair, cpxs_trans, cpxs_strap1, ex3_2_intro, or_introl/
+    /4 width=5 by lfpxs_pair_refl, cpxs_trans, cpxs_strap1, ex3_2_intro, or_introl/
   | #T2 #HT02 #HUT2
     lapply (lfpxs_cpx_trans … HT02 (L.ⓓV1) ?) -HT02
-    /4 width=3 by lfpxs_pair, cpxs_trans, ex3_intro, or_intror/
+    /4 width=3 by lfpxs_pair_refl, cpxs_trans, ex3_intro, or_intror/
   ]
 | #U1 #HTU1 #HU01
   elim (cpx_lifts_sn … HU02 (Ⓣ) … (L.ⓓV1) … HU01)
index 29ed16c9156b988e4c9fe179e5a6f876770c126c..aa8e2c9da681c554febcdfd527e15dbc9b11d3ce 100644 (file)
@@ -13,6 +13,7 @@
 (**************************************************************************)
 
 include "basic_2/rt_computation/lfpxs.ma".
+include "basic_2/rt_computation/csx_cpxs.ma".
 include "basic_2/rt_computation/csx_lsubr.ma".
 include "basic_2/rt_computation/lfsx_drops.ma".
 include "basic_2/rt_computation/lfsx_lfpxs.ma".
@@ -22,23 +23,29 @@ include "basic_2/rt_computation/lfsx_lfpxs.ma".
 (* Advanced properties ******************************************************)
 
 (* Basic_2A1: uses: lsx_lref_be_lpxs *)
-axiom lfsx_pair_lpxs: ∀h,o,G,K1,V. ⦃G, K1⦄ ⊢ ⬈*[h, o] 𝐒⦃V⦄ →
-                      ∀K2. G ⊢ ⬈*[h, o, V] 𝐒⦃K2⦄ → ⦃G, K1⦄ ⊢ ⬈*[h, V] K2 →
-                      ∀I. G ⊢ ⬈*[h, o, #0] 𝐒⦃K2.ⓑ{I}V⦄.
-(*
-#h #o #I #G #K1 #V #i #l #Hli #H @(csx_ind_alt … H) -V
-#V0 #_ #IHV0 #K2 #H @(lsx_ind … H) -K2
-#K0 #HK0 #IHK0 #HK10 #L0 #HLK0 @lsx_intro
-#L2 #HL02 #HnL02 elim (lpx_drop_conf … HLK0 … HL02) -HL02
-#Y #H #HLK2 elim (lpx_inv_pair1 … H) -H
-#K2 #V2 #HK02 #HV02 #H destruct
-elim (eq_term_dec V0 V2) #HnV02 destruct [ -IHV0 -HV02 -HK0 | -IHK0 -HnL02 -HLK0 ]
-[ /4 width=8 by lpxs_strap1, lleq_lref/
-| @(IHV0 … HnV02 … HLK2) -IHV0 -HnV02 -HLK2
+lemma lfsx_pair_lfpxs: ∀h,o,G,K1,V. ⦃G, K1⦄ ⊢ ⬈*[h, o] 𝐒⦃V⦄ →
+                       ∀K2. G ⊢ ⬈*[h, o, V] 𝐒⦃K2⦄ → ⦃G, K1⦄ ⊢ ⬈*[h, V] K2 →
+                       ∀I. G ⊢ ⬈*[h, o, #0] 𝐒⦃K2.ⓑ{I}V⦄.
+#h #o #G #K1 #V #H
+@(csx_ind_cpxs … H) -V #V0 #_ #IHV0 #K2 #H
+@(lfsx_ind … H) -K2 #K0 #HK0 #IHK0 #HK10 #I
+@lfsx_intro #Y #HY #HnY
+elim (lfpx_inv_zero_pair_sn … HY) -HY #K2 #V2 #HK02 #HV02 #H destruct
+elim (tdeq_dec h o V0 V2) #HnV02 destruct [ -IHV0 -HV02 -HK0 | -IHK0 -HnY ]
+[ /5 width=5 by lfsx_lfdeq_trans, lfpxs_step_dx, lfdeq_pair/
+| @lfsx_lfpx_trans
+  [2: @(IHV0 … HnV02 K0 … I) -IHV0 -HnV02
+      [ /2 width=3 by lfpxs_cpx_trans/
+      |
+      | 
+      ]
+  |1: skip
+  |3: @lfpx_pair /2 width=3 by lfpx_cpx_conf/
+  ]  
   /3 width=4 by lsx_cpx_trans_O, lsx_lpx_trans, lpxs_cpx_trans, lpxs_strap1/ (**) (* full auto too slow *)
 ]
 qed.
-*)
+
 (* Basic_2A1: uses: lsx_lref_be *)
 lemma lfsx_lref_pair: ∀h,o,G,K,V. ⦃G, K⦄ ⊢ ⬈*[h, o] 𝐒⦃V⦄ → G ⊢ ⬈*[h, o, V] 𝐒⦃K⦄ →
                       ∀I,L,i. ⬇*[i] L ≡ K.ⓑ{I}V → G ⊢ ⬈*[h, o, #i] 𝐒⦃L⦄.
index 8de2443e0a8fa5f2039a4852de426e1fa95ed634..cc74f1cef39e5cd02098a9b7b4f0e76a3351e338 100644 (file)
@@ -25,9 +25,9 @@ lemma lfpr_refl: ∀h,G,T. reflexive … (lfpr h G T).
 /2 width=1 by lfxs_refl/ qed.
 
 (* Basic_2A1: uses: lpr_pair *)
-lemma lfpr_pair: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ➡[h] V2 →
-                 ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ➡[h, T] L.ⓑ{I}V2.
-/2 width=1 by lfxs_pair/ qed.
+lemma lfpr_pair_refl: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ➡[h] V2 →
+                      ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ➡[h, T] L.ⓑ{I}V2.
+/2 width=1 by lfxs_pair_refl/ qed.
 
 (* Advanced inversion lemmas ************************************************)
 
index 1ad389cd4261d58b3d8f90910764f089646c80c5..c4963ad997b1e6a40fd78b7fe60f1673fb9dfe2a 100644 (file)
@@ -19,14 +19,14 @@ include "basic_2/rt_transition/lfpx.ma".
 
 (* Advanced properties ******************************************************)
 
-(* Basic_2A1: uses: lpx_refl lpx_pair *)
+(* Basic_2A1: uses: lpx_refl *)
 lemma lfpx_refl: ∀h,G,T. reflexive … (lfpx h G T).
 /2 width=1 by lfxs_refl/ qed.
 
-(* Basic_2A1: uses: lpx_refl lpx_pair *)
-lemma lfpx_pair: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈[h] V2 →
-                 ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ⬈[h, T] L.ⓑ{I}V2.
-/2 width=1 by lfxs_pair/ qed.
+(* Basic_2A1: uses: lpx_pair *)
+lemma lfpx_pair_refl: ∀h,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ⬈[h] V2 →
+                      ∀I,T. ⦃G, L.ⓑ{I}V1⦄ ⊢ ⬈[h, T] L.ⓑ{I}V2.
+/2 width=1 by lfxs_pair_refl/ qed.
 
 (* Advanced inversion lemmas ************************************************)
 
index 30bef569bf128ca83f4d5d3528ac255e41f722d5..855c83b74fed4d28a1b2dc349a824c563c96123a 100644 (file)
@@ -23,9 +23,9 @@ include "basic_2/static/lfdeq.ma".
 lemma lfdeq_refl: ∀h,o,T. reflexive … (lfdeq h o T).
 /2 width=1 by lfxs_refl/ qed.
 
-lemma lfdeq_pair: ∀h,o,V1,V2. V1 ≡[h, o] V2 →
-                  ∀I,L. ∀T:term. L.ⓑ{I}V1 ≡[h, o, T] L.ⓑ{I}V2.
-/2 width=1 by lfxs_pair/ qed.
+lemma lfdeq_pair_refl: ∀h,o,V1,V2. V1 ≡[h, o] V2 →
+                       ∀I,L. ∀T:term. L.ⓑ{I}V1 ≡[h, o, T] L.ⓑ{I}V2.
+/2 width=1 by lfxs_pair_refl/ qed.
 
 (* Advanced inversion lemmas ************************************************)
 
index 78345ad1e7fcdb6966037683271f9cd4eca812c6..58cf547d618f8d93de8d264d22dd9825f92c8c51 100644 (file)
@@ -32,7 +32,7 @@ lemma fqu_tdeq_conf: ∀h,o,b,G1,G2,L1,L2,U1,T1. ⦃G1, L1, U1⦄ ⊐[b] ⦃G2,
   /2 width=5 by fqu_pair_sn, ex3_2_intro/
 | #p #I #G #L #W1 #U1 #X #H
   elim (tdeq_inv_pair1 … H) -H #W2 #U2 #HW12 #HU12 #H destruct
-  /3 width=5 by lfdeq_pair, fqu_bind_dx, ex3_2_intro/
+  /3 width=5 by lfdeq_pair_refl, fqu_bind_dx, ex3_2_intro/
 | #p #I #G #L #W1 #U1 #Hb #X #H
   elim (tdeq_inv_pair1 … H) -H #W2 #U2 #HW12 #HU12 #H destruct
   /3 width=5 by fqu_clear, ex3_2_intro/
index cfbeb4c8f76ac89025988d7907a2c3229fcf3c5b..6bf9a269785ba9311aaa3998cb9478101abdefce 100644 (file)
@@ -25,8 +25,8 @@ lemma lfxs_refl: ∀R. (∀L. reflexive … (R L)) → ∀L,T. L ⪤*[R, T] L.
 /4 width=3 by lexs_refl, ext2_refl, ex2_intro/
 qed.
 
-lemma lfxs_pair: ∀R. (∀L. reflexive … (R L)) →
-                 ∀L,V1,V2. R L V1 V2 → ∀I,T. L.ⓑ{I}V1 ⪤*[R, T] L.ⓑ{I}V2.
+lemma lfxs_pair_refl: ∀R. (∀L. reflexive … (R L)) →
+                      ∀L,V1,V2. R L V1 V2 → ∀I,T. L.ⓑ{I}V1 ⪤*[R, T] L.ⓑ{I}V2.
 #R #HR #L #V1 #V2 #HV12 #I #T
 elim (frees_total (L.ⓑ{I}V1) T) #f #Hf
 elim (pn_split f) * #g #H destruct