]> matita.cs.unibo.it Git - helm.git/commitdiff
- the relation for pointwise extensions now takes a binder as argument
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 18 Apr 2014 19:09:54 +0000 (19:09 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 18 Apr 2014 19:09:54 +0000 (19:09 +0000)
- explicit alternative definition of lprs and lpxs removed
- changes in the notation for subclosures and refinements

80 files changed:
matita/matita/contribs/lambdadelta/basic_2/computation/acp_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/computation/cpxs_cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/computation/cpxs_lift.ma
matita/matita/contribs/lambdadelta/basic_2/computation/csx_lift.ma
matita/matita/contribs/lambdadelta/basic_2/computation/fpbg.ma
matita/matita/contribs/lambdadelta/basic_2/computation/fpbs.ma
matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_alt.ma
matita/matita/contribs/lambdadelta/basic_2/computation/fpbu.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lprs_alt.ma [deleted file]
matita/matita/contribs/lambdadelta/basic_2/computation/lprs_cprs.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lpxs_alt.ma [deleted file]
matita/matita/contribs/lambdadelta/basic_2/computation/lpxs_cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lpxs_lleq.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lsubc.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lsubc_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lsubc_ldrops.ma
matita/matita/contribs/lambdadelta/basic_2/computation/lsubc_lsuba.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_cpcs.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_cpds.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_lsstas.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_lsuba.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_lsubd.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv_snv.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_lift.ma
matita/matita/contribs/lambdadelta/basic_2/equivalence/cpcs_cpcs.ma
matita/matita/contribs/lambdadelta/basic_2/notation/notation.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/lrsubeq_2.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/lrsubeq_4.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/lrsubeqa_3.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/lrsubeqd_5.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/lrsubeqv_5.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_3.ma [deleted file]
matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_5.ma [deleted file]
matita/matita/contribs/lambdadelta/basic_2/notation/relations/supterm_6.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/suptermopt_6.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/suptermoptalt_6.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/suptermplus_6.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/suptermstar_6.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/cpr_llpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/cpx_lift.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/cpx_llpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/fpb.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpr.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpr_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpr_lpr.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpx.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpx_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/reduction/lpx_lleq.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/fqu.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/fquq.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/fquq_alt.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/llpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/llpx_sn_alt.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/llpx_sn_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/llpx_sn_lpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/llpx_sn_tc.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/lpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/lpx_sn_alt.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/lpx_sn_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/lpx_sn_lpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/relocation/lpx_sn_tc.ma
matita/matita/contribs/lambdadelta/basic_2/static/aaa_fqus.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsuba.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsuba_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsuba_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsuba_lsuba.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsubd.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsubd_da.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsubr.ma
matita/matita/contribs/lambdadelta/basic_2/static/lsubr_lsubr.ma
matita/matita/contribs/lambdadelta/basic_2/static/ssta_llpx_sn.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/fqup.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/fqus.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/fqus_alt.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/lleq.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/lleq_fqus.ma
matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl

index 3c393b9a324ab605c2f7feed6891db78c32b6ed8..fc54854cebc79de69b987e99275dc19f6a0ccd64 100644 (file)
@@ -26,7 +26,7 @@ include "basic_2/computation/lsubc_ldrops.ma".
 theorem aacr_aaa_csubc_lifts: ∀RR,RS,RP.
                               acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) →
                               ∀G,L1,T,A. ⦃G, L1⦄ ⊢ T ⁝ A → ∀L0,des. ⇩*[Ⓕ, des] L0 ≡ L1 →
-                              â\88\80T0. â\87§*[des] T â\89¡ T0 â\86\92 â\88\80L2. G â\8a¢ L2 â\8a\91[RP] L0 →
+                              â\88\80T0. â\87§*[des] T â\89¡ T0 â\86\92 â\88\80L2. G â\8a¢ L2 â«\83[RP] L0 →
                               ⦃G, L2, T0⦄ ϵ[RP] 〚A〛.
 #RR #RS #RP #H1RP #H2RP #G #L1 #T #A #H elim H -G -L1 -T -A
 [ #G #L #k #L0 #des #HL0 #X #H #L2 #HL20
index 9e6cfcd24f842e178c7e2e56a6bc032c3a6e5aef..fad7c97a5ace28125cbb857ba5de4f076f9cc72b 100644 (file)
@@ -126,9 +126,9 @@ lemma cpxs_bind2_dx: ∀h,g,G,L,V1,V2. ⦃G, L⦄ ⊢ V1 ➡[h, g] V2 →
 
 (* Properties on supclosure *************************************************)
 
-lemma fqu_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                           ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 → (T2 = U2 → ⊥) →
-                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G #L #V1 #V2 #HV12 #_ elim (lift_total V2 0 1)
   #U2 #HVU2 @(ex3_intro … U2)
@@ -154,9 +154,9 @@ lemma fqu_cpxs_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2,
 ]
 qed-.
 
-lemma fquq_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                            ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 → (T2 = U2 → ⊥) →
-                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #U2 #HTU2 #H elim (fquq_inv_gen … H12) -H12
 [ #H12 elim (fqu_cpxs_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqu_fquq, ex3_intro/
@@ -164,9 +164,9 @@ lemma fquq_cpxs_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃⸮ ⦃
 ]
 qed-.
 
-lemma fqup_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma fqup_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                            ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 → (T2 = U2 → ⊥) →
-                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83+ ⦃G2, L2, U2⦄.
+                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90+ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind_dx … H) -G1 -L1 -T1
 [ #G1 #L1 #T1 #H12 #U2 #HTU2 #H elim (fqu_cpxs_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqu_fqup, ex3_intro/
@@ -176,9 +176,9 @@ lemma fqup_cpxs_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2
 ]
 qed-.
 
-lemma fqus_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma fqus_cpxs_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                            ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 → (T2 = U2 → ⊥) →
-                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, L2, U2⦄.
+                           â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #U2 #HTU2 #H elim (fqus_inv_gen … H12) -H12
 [ #H12 elim (fqup_cpxs_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqup_fqus, ex3_intro/
index de9a897b913798991585e8a23a7f3ebb0996a710..501bf323e63708a4dce4d6191cc20d861c0ba5b2 100644 (file)
@@ -72,47 +72,47 @@ qed-.
 (* Properties on supclosure *************************************************)
 
 lemma fqu_cpxs_trans: ∀h,g,G1,G2,L1,L2,T2,U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 →
-                      â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
-                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                      â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
+                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T2 #U2 #H @(cpxs_ind_dx … H) -T2 /2 width=3 by ex2_intro/
 #T #T2 #HT2 #_ #IHTU2 #T1 #HT1 elim (fqu_cpx_trans … HT1 … HT2) -T
 #T #HT1 #HT2 elim (IHTU2 … HT2) -T2 /3 width=3 by cpxs_strap2, ex2_intro/
 qed-.
 
 lemma fquq_cpxs_trans: ∀h,g,G1,G2,L1,L2,T2,U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 →
-                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
-                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
+                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T2 #U2 #HTU2 #T1 #H elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_cpxs_trans … HTU2 … HT12) /3 width=3 by fqu_fquq, ex2_intro/
 | * #H1 #H2 #H3 destruct /2 width=3 by ex2_intro/
 ]
 qed-.
 
-lemma fquq_lsstas_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_lsstas_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                          ∀U2,l1. ⦃G2, L2⦄ ⊢ T2 •*[h, g, l1] U2 →
                          ∀l2. ⦃G2, L2⦄ ⊢ T2 ▪ [h, g] l2 → l1 ≤ l2 →
-                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 /3 width=5 by fquq_cpxs_trans, lsstas_cpxs/ qed-.
 
 lemma fqup_cpxs_trans: ∀h,g,G1,G2,L1,L2,T2,U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 →
-                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
-                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83+ ⦃G2, L2, U2⦄.
+                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
+                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90+ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T2 #U2 #H @(cpxs_ind_dx … H) -T2 /2 width=3 by ex2_intro/
 #T #T2 #HT2 #_ #IHTU2 #T1 #HT1 elim (fqup_cpx_trans … HT1 … HT2) -T
 #U1 #HTU1 #H2 elim (IHTU2 … H2) -T2 /3 width=3 by cpxs_strap2, ex2_intro/
 qed-.
 
 lemma fqus_cpxs_trans: ∀h,g,G1,G2,L1,L2,T2,U2. ⦃G2, L2⦄ ⊢ T2 ➡*[h, g] U2 →
-                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
-                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, L2, U2⦄.
+                       â\88\80T1. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
+                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T2 #U2 #HTU2 #T1 #H elim (fqus_inv_gen … H) -H
 [ #HT12 elim (fqup_cpxs_trans … HTU2 … HT12) /3 width=3 by fqup_fqus, ex2_intro/
 | * #H1 #H2 #H3 destruct /2 width=3 by ex2_intro/
 ]
 qed-.
 
-lemma fqus_lsstas_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma fqus_lsstas_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                          ∀U2,l1. ⦃G2, L2⦄ ⊢ T2 •*[h, g, l1] U2 →
                          ∀l2. ⦃G2, L2⦄ ⊢ T2 ▪ [h, g] l2 → l1 ≤ l2 →
-                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, L2, U2⦄.
+                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, L2, U2⦄.
 /3 width=7 by fqus_cpxs_trans, lsstas_cpxs/ qed-.
index 5ad268e0f4df01c965eb41425c491eb4853b2352..3ae4bfad00628436fc8964c7ac987857879b3375 100644 (file)
@@ -79,13 +79,13 @@ elim (eq_false_inv_tpair_dx … H2) -H2
 ]
 qed.
 
-lemma csx_fqu_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma csx_fqu_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                     ⦃G1, L1⦄ ⊢ ⬊*[h, g] T1 → ⦃G2, L2⦄ ⊢ ⬊*[h, g] T2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /2 width=8 by csx_inv_lref_bind, csx_inv_lift, csx_fwd_flat_dx, csx_fwd_bind_dx, csx_fwd_pair_sn/
 qed-.
 
-lemma csx_fquq_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma csx_fquq_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                      ⦃G1, L1⦄ ⊢ ⬊*[h, g] T1 → ⦃G2, L2⦄ ⊢ ⬊*[h, g] T2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #H elim (fquq_inv_gen … H12) -H12
 [ /2 width=5 by csx_fqu_conf/
@@ -93,13 +93,13 @@ lemma csx_fquq_conf: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃⸮ ⦃G2, L2
 ]
 qed-.
 
-lemma csx_fqup_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma csx_fqup_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                      ⦃G1, L1⦄ ⊢ ⬊*[h, g] T1 → ⦃G2, L2⦄ ⊢ ⬊*[h, g] T2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 /3 width=5 by csx_fqu_conf/
 qed-.
 
-lemma csx_fqus_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma csx_fqus_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                      ⦃G1, L1⦄ ⊢ ⬊*[h, g] T1 → ⦃G2, L2⦄ ⊢ ⬊*[h, g] T2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #H elim (fqus_inv_gen … H12) -H12
 [ /2 width=5 by csx_fqup_conf/
index b5c336e2474f9eb8ac35b470934526da2b3bf997..0755ebf79960759c76b8d4312e356c9b17d042ef 100644 (file)
@@ -40,7 +40,7 @@ lemma fpbg_strap2: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2.
 /2 width=5 by tri_TC_strap/ qed.
 
 (* Note: this is used in the closure proof *)
-lemma fqup_fpbg: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ >⋕[h, g] ⦃G2, L2, T2⦄.
+lemma fqup_fpbg: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ >⋕[h, g] ⦃G2, L2, T2⦄.
 /4 width=1 by fpbc_fpbg, fpbu_fpbc, fpbu_fqup/ qed.
 
 (* Basic eliminators ********************************************************)
index 193638ce28f9c95cc0997705c953430d4abe785d..d1ce32de155d8dafba3fb604c1508e8900bdf167 100644 (file)
@@ -55,13 +55,13 @@ lemma fpbs_strap2: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G1, L1, T1⦄ ≽[h, g] 
                    ⦃G, L, T⦄ ≥[h, g] ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /2 width=5 by tri_TC_strap/ qed-.
 
-lemma fqup_fpbs: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma fqup_fpbs: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                  ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2 
 /4 width=5 by fqu_fquq, fpb_fquq, tri_step/
 qed.
 
-lemma fqus_fpbs: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma fqus_fpbs: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                  ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -G2 -L2 -T2 
 /3 width=5 by fpb_fquq, tri_step/
@@ -87,13 +87,13 @@ lemma lprs_fpbs: ∀h,g,G,L1,L2,T. ⦃G, L1⦄ ⊢ ➡* L2 → ⦃G, L1, T⦄ 
 /3 width=1 by lprs_lpxs, lpxs_fpbs/ qed.
 
 lemma fpbs_fqus_trans: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G, L, T⦄ →
-                       â¦\83G, L, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                       â¦\83G, L, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 #h #g #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H @(fqus_ind … H) -G2 -L2 -T2
 /3 width=5 by fpbs_strap1, fpb_fquq/
 qed-.
 
 lemma fpbs_fqup_trans: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G, L, T⦄ →
-                       â¦\83G, L, Tâ¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                       â¦\83G, L, Tâ¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /3 width=5 by fpbs_fqus_trans, fqup_fqus/ qed-.
 
 lemma fpbs_cpxs_trans: ∀h,g,G1,G,L1,L,T1,T,T2. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G, L, T⦄ →
@@ -113,7 +113,7 @@ lemma fpbs_lleq_trans: ∀h,g,G1,G,L1,L,L2,T1,T. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G
 /3 width=5 by fpbs_strap1, fpb_lleq/ qed-.
 
 lemma fqus_fpbs_trans: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G, L, T⦄ ≥[h, g] ⦃G2, L2, T2⦄ →
-                       â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G, L, T⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                       â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G, L, T⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 #h #g #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H @(fqus_ind_dx … H) -G1 -L1 -T1
 /3 width=5 by fpbs_strap2, fpb_fquq/
 qed-.
@@ -135,19 +135,19 @@ lemma lleq_fpbs_trans: ∀h,g,G1,G2,L1,L,L2,T1,T2. ⦃G1, L, T1⦄ ≥[h, g] ⦃
 /3 width=5 by fpbs_strap2, fpb_lleq/ qed-.
 
 lemma cpxs_fqus_fpbs: ∀h,g,G1,G2,L1,L2,T1,T,T2. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T →
-                      â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                      â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /3 width=5 by fpbs_fqus_trans, cpxs_fpbs/ qed.
 
 lemma cpxs_fqup_fpbs: ∀h,g,G1,G2,L1,L2,T1,T,T2. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T →
-                      â¦\83G1, L1, Tâ¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                      â¦\83G1, L1, Tâ¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /3 width=5 by fpbs_fqup_trans, cpxs_fpbs/ qed.
 
-lemma fqus_lpxs_fpbs: â\88\80h,g,G1,G2,L1,L,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L, T2⦄ →
+lemma fqus_lpxs_fpbs: â\88\80h,g,G1,G2,L1,L,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L, T2⦄ →
                       ⦃G2, L⦄ ⊢ ➡*[h, g] L2 → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /3 width=3 by fpbs_lpxs_trans, fqus_fpbs/ qed.
 
 lemma cpxs_fqus_lpxs_fpbs: ∀h,g,G1,G2,L1,L,L2,T1,T,T2. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T →
-                           â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, L, T2⦄ → ⦃G2, L⦄ ⊢ ➡*[h, g] L2 → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
+                           â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, L, T2⦄ → ⦃G2, L⦄ ⊢ ➡*[h, g] L2 → ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄.
 /3 width=5 by cpxs_fqus_fpbs, fpbs_lpxs_trans/ qed.
 
 (* Note: this is used in the closure proof *)
index f7419939036b416597cf5298c13f96380f3ba21f..a446b57fa26038bcb5e37026f664bdf3cfc79be8 100644 (file)
@@ -25,7 +25,7 @@ include "basic_2/computation/fpbs.ma".
 definition fpbsa: ∀h. sd h → tri_relation genv lenv term ≝
                   λh,g,G1,L1,T1,G2,L2,T2.
                   ∃∃L0,L,T. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T &
-                         â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, L0, T2⦄ &
+                         â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, L0, T2⦄ &
                          ⦃G2, L0⦄ ⊢ ➡*[h, g] L & L ⋕[T2, 0] L2.
 
 interpretation "'big tree' parallel computation (closure) alternative"
@@ -70,7 +70,7 @@ qed-.
 (* Advanced properties ******************************************************)
 
 lemma fpbs_intro_alt: ∀h,g,G1,G2,L1,L0,L,L2,T1,T,T2.
-                      â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T â\86\92 â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, L0, T2⦄ →
+                      â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T â\86\92 â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, L0, T2⦄ →
                       ⦃G2, L0⦄ ⊢ ➡*[h, g] L → L ⋕[T2, 0] L2 →  ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄ .
 /3 width=7 by fpbsa_inv_fpbs, ex4_3_intro/ qed.
 
@@ -78,6 +78,6 @@ lemma fpbs_intro_alt: ∀h,g,G1,G2,L1,L0,L,L2,T1,T,T2.
 
 lemma fpbs_inv_alt: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄ →
                     ∃∃L0,L,T. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T &
-                              â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, L0, T2⦄ &
+                              â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, L0, T2⦄ &
                               ⦃G2, L0⦄ ⊢ ➡*[h, g] L & L ⋕[T2, 0] L2.
 /2 width=1 by  fpbs_fpbsa/ qed-.
index f966dff5c17051dd83a63407f7942567b6d59d8f..f78b302774e264bcd8b7ff461b7a0637ddc8e200 100644 (file)
@@ -18,7 +18,7 @@ include "basic_2/computation/fpbs.ma".
 (* UNITARY "BIG TREE" PROPER PARALLEL COMPUTATION FOR CLOSURES **************)
 
 inductive fpbu (h) (g) (G1) (L1) (T1): relation3 genv lenv term ≝
-| fpbu_fqup: â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → fpbu h g G1 L1 T1 G2 L2 T2
+| fpbu_fqup: â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → fpbu h g G1 L1 T1 G2 L2 T2
 | fpbu_cpxs: ∀T2. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T2 → (T1 = T2 → ⊥) → fpbu h g G1 L1 T1 G1 L1 T2
 | fpbu_lpxs: ∀L2. ⦃G1, L1⦄ ⊢ ➡*[h, g] L2 → (L1 ⋕[T1, 0] L2 → ⊥) → fpbu h g G1 L1 T1 G1 L2 T1
 .
diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/lprs_alt.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/lprs_alt.ma
deleted file mode 100644 (file)
index 315ee8f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||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/notation/relations/predsnstaralt_3.ma".
-include "basic_2/computation/cprs_cprs.ma".
-include "basic_2/computation/lprs.ma".
-
-(* SN PARALLEL COMPUTATION ON LOCAL ENVIRONMENTS ****************************)
-
-(* alternative definition *)
-definition lprsa: relation3 genv lenv lenv ≝
-           λG. lpx_sn … (cprs G).
-
-interpretation "parallel computation (local environment, sn variant) alternative"
-   'PRedSnStarAlt G L1 L2 = (lprsa G L1 L2).
-
-(* Main properties on the alternative definition ****************************)
-
-theorem lprsa_lprs: ∀G,L1,L2. ⦃G, L1⦄ ⊢ ➡➡* L2 → ⦃G, L1⦄ ⊢ ➡* L2.
-/2 width=1 by lpx_sn_LTC_TC_lpx_sn/ qed-.
-
-(* Main inversion lemmas on the alternative definition **********************)
-
-theorem lprs_inv_lprsa: ∀G,L1,L2. ⦃G, L1⦄ ⊢ ➡* L2 → ⦃G, L1⦄ ⊢ ➡➡* L2.
-/3 width=3 by TC_lpx_sn_inv_lpx_sn_LTC, lpr_cprs_trans/ qed-.
-
-(* Alternative eliminators **************************************************)
-
-lemma lprs_ind_alt: ∀G. ∀R:relation lenv.
-                    R (⋆) (⋆) → (
-                       ∀I,K1,K2,V1,V2.
-                       ⦃G, K1⦄ ⊢ ➡* K2 → ⦃G, K1⦄ ⊢ V1 ➡* V2 →
-                       R K1 K2 → R (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
-                    ) →
-                    ∀L1,L2. ⦃G, L1⦄ ⊢ ➡* L2 → R L1 L2.
-/3 width=4 by TC_lpx_sn_ind, lpr_cprs_trans/ qed-.
index 9ce393c437959f4b71cba1de7b690709f878dacd..1bcb46d37e387513b586c24bdd4960c5febfd496 100644 (file)
@@ -35,6 +35,17 @@ lemma lprs_inv_pair2: ∀I,G,L1,K2,V2. ⦃G, L1⦄ ⊢ ➡* K2.ⓑ{I}V2 →
                                L1 = K1.ⓑ{I}V1.
 /3 width=3 by TC_lpx_sn_inv_pair2, lpr_cprs_trans/ qed-.
 
+(* Advanced eliminators *****************************************************)
+
+lemma lprs_ind_alt: ∀G. ∀R:relation lenv.
+                    R (⋆) (⋆) → (
+                       ∀I,K1,K2,V1,V2.
+                       ⦃G, K1⦄ ⊢ ➡* K2 → ⦃G, K1⦄ ⊢ V1 ➡* V2 →
+                       R K1 K2 → R (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
+                    ) →
+                    ∀L1,L2. ⦃G, L1⦄ ⊢ ➡* L2 → R L1 L2.
+/3 width=4 by TC_lpx_sn_ind, lpr_cprs_trans/ qed-.
+
 (* Properties on context-sensitive parallel computation for terms ***********)
 
 lemma lprs_cpr_trans: ∀G. s_r_transitive … (cpr G) (λ_. lprs G).
diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/lpxs_alt.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/lpxs_alt.ma
deleted file mode 100644 (file)
index 8a6b30a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||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/notation/relations/predsnstaralt_5.ma".
-include "basic_2/computation/cpxs_cpxs.ma".
-include "basic_2/computation/lpxs.ma".
-
-(* SN EXTENDED PARALLEL COMPUTATION ON LOCAL ENVIRONMENTS *******************)
-
-(* alternative definition *)
-definition lpxsa: ∀h. sd h → relation3 genv lenv lenv ≝
-                  λh,g,G. lpx_sn … (cpxs h g G).
-
-interpretation "extended parallel computation (local environment, sn variant) alternative"
-   'PRedSnStarAlt h g G L1 L2 = (lpxsa h g G L1 L2).
-
-(* Main properties on the alternative definition ****************************)
-
-theorem lpxsa_lpxs: ∀h,g,G,L1,L2. ⦃G, L1⦄ ⊢ ➡➡*[h, g] L2 → ⦃G, L1⦄ ⊢ ➡*[h, g] L2.
-/2 width=1 by lpx_sn_LTC_TC_lpx_sn/ qed-.
-
-(* Main inversion lemmas on the alternative definition **********************)
-
-theorem lpxs_inv_lpxsa: ∀h,g,G,L1,L2. ⦃G, L1⦄ ⊢ ➡*[h, g] L2 → ⦃G, L1⦄ ⊢ ➡➡*[h, g] L2.
-/3 width=3 by TC_lpx_sn_inv_lpx_sn_LTC, lpx_cpxs_trans/ qed-.
-
-(* Alternative eliminators **************************************************)
-
-lemma lpxs_ind_alt: ∀h,g,G. ∀R:relation lenv.
-                    R (⋆) (⋆) → (
-                       ∀I,K1,K2,V1,V2.
-                       ⦃G, K1⦄ ⊢ ➡*[h, g] K2 → ⦃G, K1⦄ ⊢ V1 ➡*[h, g] V2 →
-                       R K1 K2 → R (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
-                    ) →
-                    ∀L1,L2. ⦃G, L1⦄ ⊢ ➡*[h, g] L2 → R L1 L2.
-/3 width=4 by TC_lpx_sn_ind, lpx_cpxs_trans/ qed-.
index 1dfb297e7cffe90cad0611b09a263b6b802de063..d6e614042fbc14df90c0a4458e378086a3d44997 100644 (file)
@@ -34,6 +34,17 @@ lemma lpxs_inv_pair2: ∀h,g,I,G,L1,K2,V2. ⦃G, L1⦄ ⊢ ➡*[h, g] K2.ⓑ{I}V
                       ∃∃K1,V1. ⦃G, K1⦄ ⊢ ➡*[h, g] K2 & ⦃G, K1⦄ ⊢ V1 ➡*[h, g] V2 & L1 = K1.ⓑ{I}V1.
 /3 width=3 by TC_lpx_sn_inv_pair2, lpx_cpxs_trans/ qed-.
 
+(* Advanced eliminators *****************************************************)
+
+lemma lpxs_ind_alt: ∀h,g,G. ∀R:relation lenv.
+                    R (⋆) (⋆) → (
+                       ∀I,K1,K2,V1,V2.
+                       ⦃G, K1⦄ ⊢ ➡*[h, g] K2 → ⦃G, K1⦄ ⊢ V1 ➡*[h, g] V2 →
+                       R K1 K2 → R (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
+                    ) →
+                    ∀L1,L2. ⦃G, L1⦄ ⊢ ➡*[h, g] L2 → R L1 L2.
+/3 width=4 by TC_lpx_sn_ind, lpx_cpxs_trans/ qed-.
+
 (* Properties on context-sensitive extended parallel computation for terms **)
 
 lemma lpxs_cpx_trans: ∀h,g,G. s_r_transitive … (cpx h g G) (λ_.lpxs h g G).
@@ -92,9 +103,9 @@ lemma lpxs_pair2: ∀h,g,I,G,L1,L2. ⦃G, L1⦄ ⊢ ➡*[h, g] L2 →
 
 (* Properties on supclosure *************************************************)
 
-lemma lpx_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma lpx_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                       ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 →
-                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
+                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 [ #G2 #L2 #T2 #H12 #K1 #HKL1 elim (lpx_fqu_trans … H12 … HKL1) -L1
   /3 width=5 by cpx_cpxs, fqu_fqup, ex3_2_intro/
@@ -105,19 +116,19 @@ lemma lpx_fqup_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2, L2,
 ]
 qed-.
 
-lemma lpx_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma lpx_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                       ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 →
-                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
-#h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -G2 -L2 -T2 /2 width=5 by ex3_2_intro/
+                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
+#h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -G2 -L2 -T2 [ /2 width=5 by ex3_2_intro/ ]
 #G #G2 #L #L2 #T #T2 #_ #H2 #IH1 #K1 #HLK1 elim (IH1 … HLK1) -L1
 #L0 #T0 #HT10 #HT0 #HL0 elim (lpx_fquq_trans … H2 … HL0) -L
 #L #T3 #HT3 #HT32 #HL2 elim (fqus_cpx_trans … HT0 … HT3) -T
 /3 width=7 by cpxs_strap1, fqus_strap1, ex3_2_intro/
 qed-.
 
-lemma lpxs_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma lpxs_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                        ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 →
-                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
+                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #HT12 #K1 #H @(lpxs_ind_dx … H) -K1
 [ /2 width=5 by ex3_2_intro/
 | #K1 #K #HK1 #_ * #L #T #HT1 #HT2 #HL2 -HT12
@@ -127,9 +138,9 @@ lemma lpxs_fquq_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃⸮ ⦃G2,
 ]
 qed-.
 
-lemma lpxs_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma lpxs_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                        ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 →
-                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
+                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #HT12 #K1 #H @(lpxs_ind_dx … H) -K1
 [ /2 width=5 by ex3_2_intro/
 | #K1 #K #HK1 #_ * #L #T #HT1 #HT2 #HL2 -HT12
@@ -139,9 +150,9 @@ lemma lpxs_fqup_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2, L2
 ]
 qed-.
 
-lemma lpxs_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma lpxs_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                        ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 →
-                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
+                       â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡*[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -G2 -L2 -T2 /2 width=5 by ex3_2_intro/
 #G #G2 #L #L2 #T #T2 #_ #H2 #IH1 #K1 #HLK1 elim (IH1 … HLK1) -L1
 #L0 #T0 #HT10 #HT0 #HL0 elim (lpxs_fquq_trans … H2 … HL0) -L
index 536288f01851f0368806c06b60f49a21dddefff0..8f48afe864a053eb82b207be15bf28fe77e5e5f7 100644 (file)
@@ -30,9 +30,9 @@ lemma lleq_lpxs_trans: ∀h,g,G,L2,K2. ⦃G, L2⦄ ⊢ ➡*[h, g] K2 →
 /3 width=3 by lpxs_strap1, ex2_intro/
 qed-.
 
-lemma lpxs_lleq_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma lpxs_lleq_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                            ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
+                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G1 #L1 #V1 #X #H1 #H2 elim (lpxs_inv_pair2 … H1) -H1
   #K0 #V0 #H1KL1 #_ #H destruct
@@ -59,9 +59,9 @@ lemma lpxs_lleq_fqu_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2,
 ]
 qed-.
 
-lemma lpxs_lleq_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma lpxs_lleq_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                             ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
+                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K1 #H1KL1 #H2KL1
 elim (fquq_inv_gen … H) -H
 [ #H elim (lpxs_lleq_fqu_trans … H … H1KL1 H2KL1) -L1
@@ -70,9 +70,9 @@ elim (fquq_inv_gen … H) -H
 ]
 qed-.
 
-lemma lpxs_lleq_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma lpxs_lleq_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                             ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
+                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 [ #G2 #L2 #T2 #H #K1 #H1KL1 #H2KL1 elim (lpxs_lleq_fqu_trans … H … H1KL1 H2KL1) -L1
   /3 width=4 by fqu_fqup, ex3_intro/
@@ -82,9 +82,9 @@ lemma lpxs_lleq_fqup_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G
 ]
 qed-.
 
-lemma lpxs_lleq_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma lpxs_lleq_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                             ∀K1. ⦃G1, K1⦄ ⊢ ➡*[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
+                            â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡*[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K1 #H1KL1 #H2KL1
 elim (fqus_inv_gen … H) -H
 [ #H elim (lpxs_lleq_fqup_trans … H … H1KL1 H2KL1) -L1
index 854a79ce6a73bc44514ab01619152415e3d54c28..e43f81978f3f7e61c233a7faec5ab4c5f51a5b0c 100644 (file)
@@ -31,7 +31,7 @@ interpretation
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lsubc_inv_atom1_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â\8a\91[RP] L2 → L1 = ⋆ → L2 = ⋆.
+fact lsubc_inv_atom1_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â«\83[RP] L2 → L1 = ⋆ → L2 = ⋆.
 #RP #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -40,13 +40,13 @@ fact lsubc_inv_atom1_aux: ∀RP,G,L1,L2. G ⊢ L1 ⊑[RP] L2 → L1 = ⋆ → L2
 qed-.
 
 (* Basic_1: was just: csubc_gen_sort_r *)
-lemma lsubc_inv_atom1: â\88\80RP,G,L2. G â\8a¢ â\8b\86 â\8a\91[RP] L2 → L2 = ⋆.
+lemma lsubc_inv_atom1: â\88\80RP,G,L2. G â\8a¢ â\8b\86 â«\83[RP] L2 → L2 = ⋆.
 /2 width=5 by lsubc_inv_atom1_aux/ qed-.
 
-fact lsubc_inv_pair1_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â\8a\91[RP] L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
-                          (â\88\83â\88\83K2. G â\8a¢ K1 â\8a\91[RP] K2 & L2 = K2.ⓑ{I}X) ∨
+fact lsubc_inv_pair1_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â«\83[RP] L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
+                          (â\88\83â\88\83K2. G â\8a¢ K1 â«\83[RP] K2 & L2 = K2.ⓑ{I}X) ∨
                           ∃∃K2,V,W,A. ⦃G, K1, V⦄ ϵ[RP] 〚A〛 & ⦃G, K1, W⦄ ϵ[RP] 〚A〛 & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                      G â\8a¢ K1 â\8a\91[RP] K2 &
+                                      G â\8a¢ K1 â«\83[RP] K2 &
                                       L2 = K2. ⓛW & X = ⓝW.V & I = Abbr.
 #RP #G #L1 #L2 * -L1 -L2
 [ #I #K1 #V #H destruct
@@ -56,14 +56,14 @@ fact lsubc_inv_pair1_aux: ∀RP,G,L1,L2. G ⊢ L1 ⊑[RP] L2 → ∀I,K1,X. L1 =
 qed-.
 
 (* Basic_1: was: csubc_gen_head_r *)
-lemma lsubc_inv_pair1: â\88\80RP,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â\8a\91[RP] L2 →
-                       (â\88\83â\88\83K2. G â\8a¢ K1 â\8a\91[RP] K2 & L2 = K2.ⓑ{I}X) ∨
+lemma lsubc_inv_pair1: â\88\80RP,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â«\83[RP] L2 →
+                       (â\88\83â\88\83K2. G â\8a¢ K1 â«\83[RP] K2 & L2 = K2.ⓑ{I}X) ∨
                        ∃∃K2,V,W,A. ⦃G, K1, V⦄ ϵ[RP] 〚A〛 & ⦃G, K1, W⦄ ϵ[RP] 〚A〛 & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                   G â\8a¢ K1 â\8a\91[RP] K2 &
+                                   G â\8a¢ K1 â«\83[RP] K2 &
                                    L2 = K2.ⓛW & X = ⓝW.V & I = Abbr.
 /2 width=3 by lsubc_inv_pair1_aux/ qed-.
 
-fact lsubc_inv_atom2_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â\8a\91[RP] L2 → L2 = ⋆ → L1 = ⋆.
+fact lsubc_inv_atom2_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â«\83[RP] L2 → L2 = ⋆ → L1 = ⋆.
 #RP #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -72,13 +72,13 @@ fact lsubc_inv_atom2_aux: ∀RP,G,L1,L2. G ⊢ L1 ⊑[RP] L2 → L2 = ⋆ → L1
 qed-.
 
 (* Basic_1: was just: csubc_gen_sort_l *)
-lemma lsubc_inv_atom2: â\88\80RP,G,L1. G â\8a¢ L1 â\8a\91[RP] ⋆ → L1 = ⋆.
+lemma lsubc_inv_atom2: â\88\80RP,G,L1. G â\8a¢ L1 â«\83[RP] ⋆ → L1 = ⋆.
 /2 width=5 by lsubc_inv_atom2_aux/ qed-.
 
-fact lsubc_inv_pair2_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â\8a\91[RP] L2 → ∀I,K2,W. L2 = K2.ⓑ{I} W →
-                          (â\88\83â\88\83K1. G â\8a¢ K1 â\8a\91[RP] K2 & L1 = K1. ⓑ{I} W) ∨
+fact lsubc_inv_pair2_aux: â\88\80RP,G,L1,L2. G â\8a¢ L1 â«\83[RP] L2 → ∀I,K2,W. L2 = K2.ⓑ{I} W →
+                          (â\88\83â\88\83K1. G â\8a¢ K1 â«\83[RP] K2 & L1 = K1. ⓑ{I} W) ∨
                           ∃∃K1,V,A. ⦃G, K1, V⦄ ϵ[RP] 〚A〛 & ⦃G, K1, W⦄ ϵ[RP] 〚A〛 & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                    G â\8a¢ K1 â\8a\91[RP] K2 &
+                                    G â\8a¢ K1 â«\83[RP] K2 &
                                     L1 = K1.ⓓⓝW.V & I = Abst.
 #RP #G #L1 #L2 * -L1 -L2
 [ #I #K2 #W #H destruct
@@ -88,17 +88,17 @@ fact lsubc_inv_pair2_aux: ∀RP,G,L1,L2. G ⊢ L1 ⊑[RP] L2 → ∀I,K2,W. L2 =
 qed-.
 
 (* Basic_1: was just: csubc_gen_head_l *)
-lemma lsubc_inv_pair2: â\88\80RP,I,G,L1,K2,W. G â\8a¢ L1 â\8a\91[RP] K2.ⓑ{I} W →
-                       (â\88\83â\88\83K1. G â\8a¢ K1 â\8a\91[RP] K2 & L1 = K1.ⓑ{I} W) ∨
+lemma lsubc_inv_pair2: â\88\80RP,I,G,L1,K2,W. G â\8a¢ L1 â«\83[RP] K2.ⓑ{I} W →
+                       (â\88\83â\88\83K1. G â\8a¢ K1 â«\83[RP] K2 & L1 = K1.ⓑ{I} W) ∨
                        ∃∃K1,V,A. ⦃G, K1, V⦄ ϵ[RP] 〚A〛 & ⦃G, K1, W⦄ ϵ[RP] 〚A〛 & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                 G â\8a¢ K1 â\8a\91[RP] K2 &
+                                 G â\8a¢ K1 â«\83[RP] K2 &
                                  L1 = K1.ⓓⓝW.V & I = Abst.
 /2 width=3 by lsubc_inv_pair2_aux/ qed-.
 
 (* Basic properties *********************************************************)
 
 (* Basic_1: was just: csubc_refl *)
-lemma lsubc_refl: â\88\80RP,G,L. G â\8a¢ L â\8a\91[RP] L.
+lemma lsubc_refl: â\88\80RP,G,L. G â\8a¢ L â«\83[RP] L.
 #RP #G #L elim L -L // /2 width=1/
 qed.
 
index c2cd35475a0b4562f6bde13ce33bcdaf1952f735..2b8133bda20c19bdec4fcebdc146a353c3c7e423 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/computation/lsubc.ma".
 
 (* Basic_1: was: csubc_drop_conf_O *)
 (* Note: the constant 0 can not be generalized *)
-lemma lsubc_ldrop_O1_trans: â\88\80RP,G,L1,L2. G â\8a¢ L1 â\8a\91[RP] L2 → ∀K2,s,e. ⇩[s, 0, e] L2 ≡ K2 →
-                            â\88\83â\88\83K1. â\87©[s, 0, e] L1 â\89¡ K1 & G â\8a¢ K1 â\8a\91[RP] K2.
+lemma lsubc_ldrop_O1_trans: â\88\80RP,G,L1,L2. G â\8a¢ L1 â«\83[RP] L2 → ∀K2,s,e. ⇩[s, 0, e] L2 ≡ K2 →
+                            â\88\83â\88\83K1. â\87©[s, 0, e] L1 â\89¡ K1 & G â\8a¢ K1 â«\83[RP] K2.
 #RP #G #L1 #L2 #H elim H -L1 -L2
 [ #X #s #e #H elim (ldrop_inv_atom1 … H) -H /4 width=3 by ldrop_atom, ex2_intro/
 | #I #L1 #L2 #V #_ #IHL12 #X #s #e #H
@@ -43,8 +43,8 @@ qed-.
 (* Basic_1: was: csubc_drop_conf_rev *)
 lemma ldrop_lsubc_trans: ∀RR,RS,RP.
                          acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) →
-                         â\88\80G,L1,K1,d,e. â\87©[â\92», d, e] L1 â\89¡ K1 â\86\92 â\88\80K2. G â\8a¢ K1 â\8a\91[RP] K2 →
-                         â\88\83â\88\83L2. G â\8a¢ L1 â\8a\91[RP] L2 & ⇩[Ⓕ, d, e] L2 ≡ K2.
+                         â\88\80G,L1,K1,d,e. â\87©[â\92», d, e] L1 â\89¡ K1 â\86\92 â\88\80K2. G â\8a¢ K1 â«\83[RP] K2 →
+                         â\88\83â\88\83L2. G â\8a¢ L1 â«\83[RP] L2 & ⇩[Ⓕ, d, e] L2 ≡ K2.
 #RR #RS #RP #Hacp #Hacr #G #L1 #K1 #d #e #H elim H -L1 -K1 -d -e
 [ #d #e #He #X #H elim (lsubc_inv_atom1 … H) -H
   >He /2 width=3 by ex2_intro/
index 7acb1fc7acf6f24175b8f20bf1e0b80e479051b7..7f2fd1cccde7d8128e33b090f407cd3720aca767 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/computation/lsubc_ldrop.ma".
 (* Basic_1: was: csubc_drop1_conf_rev *)
 lemma ldrops_lsubc_trans: ∀RR,RS,RP.
                           acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) →
-                          â\88\80G,L1,K1,des. â\87©*[â\92», des] L1 â\89¡ K1 â\86\92 â\88\80K2. G â\8a¢ K1 â\8a\91[RP] K2 →
-                          â\88\83â\88\83L2. G â\8a¢ L1 â\8a\91[RP] L2 & ⇩*[Ⓕ, des] L2 ≡ K2.
+                          â\88\80G,L1,K1,des. â\87©*[â\92», des] L1 â\89¡ K1 â\86\92 â\88\80K2. G â\8a¢ K1 â«\83[RP] K2 →
+                          â\88\83â\88\83L2. G â\8a¢ L1 â«\83[RP] L2 & ⇩*[Ⓕ, des] L2 ≡ K2.
 #RR #RS #RP #Hacp #Hacr #G #L1 #K1 #des #H elim H -L1 -K1 -des
 [ /2 width=3 by ldrops_nil, ex2_intro/
 | #L1 #L #K1 #des #d #e #_ #HLK1 #IHL #K2 #HK12
index b4f5be28952efa0d91e31ef5a83f45485e05bcd9..cc9011afc90da999b02798b6095c8d557e675a06 100644 (file)
@@ -20,7 +20,7 @@ include "basic_2/computation/acp_aaa.ma".
 (* properties concerning lenv refinement for atomic arity assignment ********)
 
 lemma lsuba_lsubc: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) →
-                   â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 â\86\92 G â\8a¢ L1 â\8a\91[RP] L2.
+                   â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 â\86\92 G â\8a¢ L1 â«\83[RP] L2.
 #RR #RS #RP #H1RP #H2RP #G #L1 #L2 #H elim H -L1 -L2 // /2 width=1/
 #L1 #L2 #W #V #A #H elim (aaa_inv_cast … H) -H /3 width=4/
 qed.
index fa872435e03fd970575e32a1289d35153f4220ac..ec0832ad4f49a1af4a63a7ff14ba1b169a196594 100644 (file)
@@ -34,7 +34,7 @@ interpretation
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lsubsv_inv_atom1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 → L1 = ⋆ → L2 = ⋆.
+fact lsubsv_inv_atom1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 → L1 = ⋆ → L2 = ⋆.
 #h #g #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -42,16 +42,16 @@ fact lsubsv_inv_atom1_aux: ∀h,g,G,L1,L2. G ⊢ L1 ¡⊑[h, g] L2 → L1 = ⋆
 ]
 qed-.
 
-lemma lsubsv_inv_atom1: â\88\80h,g,G,L2. G â\8a¢ â\8b\86 Â¡â\8a\91[h, g] L2 → L2 = ⋆.
+lemma lsubsv_inv_atom1: â\88\80h,g,G,L2. G â\8a¢ â\8b\86 Â¡â«\83[h, g] L2 → L2 = ⋆.
 /2 width=6 by lsubsv_inv_atom1_aux/ qed-.
 
-fact lsubsv_inv_pair1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+fact lsubsv_inv_pair1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                            ∀I,K1,X. L1 = K1.ⓑ{I}X →
-                           (â\88\83â\88\83K2. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
+                           (â\88\83â\88\83K2. G â\8a¢ K1 Â¡â«\83[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
                            ∃∃K2,W,V,l. ⦃G, K1⦄ ⊢ W ¡[h, g] & ⦃G, K1⦄ ⊢ V ¡[h, g] &
                                        scast h g l G K1 V W & ⦃G, K2⦄ ⊢ W ¡[h, g] &
                                        ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                       G â\8a¢ K1 Â¡â\8a\91[h, g] K2 &
+                                       G â\8a¢ K1 Â¡â«\83[h, g] K2 &
                                        I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 #h #g #G #L1 #L2 * -L1 -L2
 [ #J #K1 #X #H destruct
@@ -60,16 +60,16 @@ fact lsubsv_inv_pair1_aux: ∀h,g,G,L1,L2. G ⊢ L1 ¡⊑[h, g] L2 →
 ]
 qed-.
 
-lemma lsubsv_inv_pair1: â\88\80h,g,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X Â¡â\8a\91[h, g] L2 →
-                        (â\88\83â\88\83K2. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
+lemma lsubsv_inv_pair1: â\88\80h,g,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X Â¡â«\83[h, g] L2 →
+                        (â\88\83â\88\83K2. G â\8a¢ K1 Â¡â«\83[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
                         ∃∃K2,W,V,l. ⦃G, K1⦄ ⊢ W ¡[h, g] & ⦃G, K1⦄ ⊢ V ¡[h, g] &
                                     scast h g l G K1 V W & ⦃G, K2⦄ ⊢ W ¡[h, g] &
                                     ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                    G â\8a¢ K1 Â¡â\8a\91[h, g] K2 &
+                                    G â\8a¢ K1 Â¡â«\83[h, g] K2 &
                                     I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 /2 width=3 by lsubsv_inv_pair1_aux/ qed-.
 
-fact lsubsv_inv_atom2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 → L2 = ⋆ → L1 = ⋆.
+fact lsubsv_inv_atom2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 → L2 = ⋆ → L1 = ⋆.
 #h #g #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -77,16 +77,16 @@ fact lsubsv_inv_atom2_aux: ∀h,g,G,L1,L2. G ⊢ L1 ¡⊑[h, g] L2 → L2 = ⋆
 ]
 qed-.
 
-lemma lsubsv_inv_atom2: â\88\80h,g,G,L1. G â\8a¢ L1 Â¡â\8a\91[h, g] ⋆ → L1 = ⋆.
+lemma lsubsv_inv_atom2: â\88\80h,g,G,L1. G â\8a¢ L1 Â¡â«\83[h, g] ⋆ → L1 = ⋆.
 /2 width=6 by lsubsv_inv_atom2_aux/ qed-.
 
-fact lsubsv_inv_pair2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+fact lsubsv_inv_pair2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                            ∀I,K2,W. L2 = K2.ⓑ{I}W →
-                           (â\88\83â\88\83K1. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
+                           (â\88\83â\88\83K1. G â\8a¢ K1 Â¡â«\83[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
                            ∃∃K1,V,l. ⦃G, K1⦄ ⊢ W ¡[h, g] & ⦃G, K1⦄ ⊢ V ¡[h, g] &
                                      scast h g l G K1 V W & ⦃G, K2⦄ ⊢ W ¡[h, g] &
                                      ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                     G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
+                                     G â\8a¢ K1 Â¡â«\83[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
 #h #g #G #L1 #L2 * -L1 -L2
 [ #J #K2 #U #H destruct
 | #I #L1 #L2 #V #HL12 #J #K2 #U #H destruct /3 width=3/
@@ -94,27 +94,27 @@ fact lsubsv_inv_pair2_aux: ∀h,g,G,L1,L2. G ⊢ L1 ¡⊑[h, g] L2 →
 ]
 qed-.
 
-lemma lsubsv_inv_pair2: â\88\80h,g,I,G,L1,K2,W. G â\8a¢ L1 Â¡â\8a\91[h, g] K2.ⓑ{I}W →
-                        (â\88\83â\88\83K1. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
+lemma lsubsv_inv_pair2: â\88\80h,g,I,G,L1,K2,W. G â\8a¢ L1 Â¡â«\83[h, g] K2.ⓑ{I}W →
+                        (â\88\83â\88\83K1. G â\8a¢ K1 Â¡â«\83[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
                         ∃∃K1,V,l. ⦃G, K1⦄ ⊢ W ¡[h, g] & ⦃G, K1⦄ ⊢ V ¡[h, g] &
                                   scast h g l G K1 V W & ⦃G, K2⦄ ⊢ W ¡[h, g] &
                                   ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                  G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
+                                  G â\8a¢ K1 Â¡â«\83[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
 /2 width=3 by lsubsv_inv_pair2_aux/ qed-.
 
 (* Basic_forward lemmas *****************************************************)
 
-lemma lsubsv_fwd_lsubr: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 â\86\92 L1 â\8a\91 L2.
+lemma lsubsv_fwd_lsubr: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 â\86\92 L1 â«\83 L2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2 // /2 width=1/
 qed-.
 
 (* Basic properties *********************************************************)
 
-lemma lsubsv_refl: â\88\80h,g,G,L. G â\8a¢ L Â¡â\8a\91[h, g] L.
+lemma lsubsv_refl: â\88\80h,g,G,L. G â\8a¢ L Â¡â«\83[h, g] L.
 #h #g #G #L elim L -L // /2 width=1/
 qed.
 
-lemma lsubsv_cprs_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+lemma lsubsv_cprs_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                          ∀T1,T2. ⦃G, L2⦄ ⊢ T1 ➡* T2 → ⦃G, L1⦄ ⊢ T1 ➡* T2.
 /3 width=6 by lsubsv_fwd_lsubr, lsubr_cprs_trans/
 qed-.
index 03ef9527cd5af2084f096077f0be85be12b584a9..e4fe12f2db68393da34a7bdf4432e96211e1c409 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/dynamic/lsubsv.ma".
 
 (* Properties on context-sensitive parallel equivalence for terms ***********)
 
-lemma lsubsv_cpcs_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+lemma lsubsv_cpcs_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                          ∀T1,T2. ⦃G, L2⦄ ⊢ T1 ⬌* T2 → ⦃G, L1⦄ ⊢ T1 ⬌* T2.
 /3 width=6 by lsubsv_fwd_lsubr, lsubr_cpcs_trans/
 qed-.
index 5828b4e9bff94062b72440dbfc0c274853ec18af..a4d4cff8d1ae718cfad4be867b2415b69a633034 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/dynamic/lsubsv_lsstas.ma".
 (* Properties on decomposed extended parallel computation on terms **********)
 
 lemma lsubsv_cpds_trans: ∀h,g,G,L2,T1,T2. ⦃G, L2⦄ ⊢ T1 •*➡*[h, g] T2 →
-                         â\88\80L1. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+                         â\88\80L1. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                          ∃∃T. ⦃G, L1⦄ ⊢ T1 •*➡*[h, g] T & ⦃G, L1⦄ ⊢ T2 ➡* T.
 #h #g #G #L2 #T1 #T2 * #T #l1 #l2 #Hl21 #Hl1 #HT1 #HT2 #L1 #HL12
 lapply (lsubsv_cprs_trans … HL12 … HT2) -HT2 #HT2
index 3f184b6d25eaaadbfdfd812fcd09e767fea69710..3897a75fac2a16f9b04d19a7f8aba202603bff68 100644 (file)
@@ -19,9 +19,9 @@ include "basic_2/dynamic/lsubsv.ma".
 (* Properties concerning basic local environment slicing ********************)
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsubsv_ldrop_O1_conf: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+lemma lsubsv_ldrop_O1_conf: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                             ∀K1,s,e. ⇩[s, 0, e] L1 ≡ K1 →
-                            â\88\83â\88\83K2. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & ⇩[s, 0, e] L2 ≡ K2.
+                            â\88\83â\88\83K2. G â\8a¢ K1 Â¡â«\83[h, g] K2 & ⇩[s, 0, e] L2 ≡ K2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #V #_ #IHL12 #K1 #s #e #H
@@ -42,9 +42,9 @@ lemma lsubsv_ldrop_O1_conf: ∀h,g,G,L1,L2. G ⊢ L1 ¡⊑[h, g] L2 →
 qed-.
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsubsv_ldrop_O1_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+lemma lsubsv_ldrop_O1_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                              ∀K2,s, e. ⇩[s, 0, e] L2 ≡ K2 →
-                             â\88\83â\88\83K1. G â\8a¢ K1 Â¡â\8a\91[h, g] K2 & ⇩[s, 0, e] L1 ≡ K1.
+                             â\88\83â\88\83K1. G â\8a¢ K1 Â¡â«\83[h, g] K2 & ⇩[s, 0, e] L1 ≡ K1.
 #h #g #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #V #_ #IHL12 #K2 #s #e #H
index f975e0fbd0ad646c1df7fb7d809e8cbb08243b1f..ec2ae57bc94c5af752012601632d16325e72b17f 100644 (file)
@@ -24,7 +24,7 @@ include "basic_2/dynamic/lsubsv_lsubd.ma".
 
 lemma lsubsv_lsstas_trans: ∀h,g,G,L2,T,U2,l1. ⦃G, L2⦄ ⊢ T •*[h, g, l1] U2 →
                            ∀l2. l1 ≤ l2 → ⦃G, L2⦄ ⊢ T ▪[h, g] l2 →
-                           â\88\80L1. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+                           â\88\80L1. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                            ∃∃U1. ⦃G, L1⦄ ⊢ T •*[h, g, l1] U1 & ⦃G, L1⦄ ⊢ U1 ⬌* U2.
 #h #g #G #L2 #T #U #l1 #H @(lsstas_ind_alt … H) -G -L2 -T -U -l1
 [1,2: /2 width=3 by lstar_O, ex2_intro/
@@ -81,7 +81,7 @@ qed-.
 
 lemma lsubsv_ssta_trans: ∀h,g,G,L2,T,U2. ⦃G, L2⦄ ⊢ T •[h, g] U2 →
                          ∀l. ⦃G, L2⦄ ⊢ T ▪[h, g] l+1 →
-                         â\88\80L1. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 →
+                         â\88\80L1. G â\8a¢ L1 Â¡â«\83[h, g] L2 →
                          ∃∃U1. ⦃G, L1⦄ ⊢ T •[h, g] U1 & ⦃G, L1⦄ ⊢ U1 ⬌* U2.
 #h #g #G #L2 #T #U2 #H #l #HTl #L1 #HL12
 elim ( lsubsv_lsstas_trans … U2 1 … HTl … HL12)
index aa270a256d975cd767fb7105390d45db849afd3b..db5df3b4cd5256f6eaf244db08a2e8b161c53291 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/dynamic/lsubsv.ma".
 
 (* Forward lemmas on lenv refinement for atomic arity assignment ************)
 
-lemma lsubsv_fwd_lsuba: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 â\86\92 G â\8a¢ L1 â\81\9dâ\8a\91 L2.
+lemma lsubsv_fwd_lsuba: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 â\86\92 G â\8a¢ L1 â\81\9dâ«\83 L2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2 // /2 width=1/
 #L1 #L2 #W #V #l #H1W #HV #HVW #H2W #H1l #_ #_ #IHL12
 lapply (snv_scast … HV H1W HVW H1l) -HV -H1W -HVW -H1l #HV
index b9708e8a94c1bfa9a8f8b4fd3de2f6c84cd7d38f..86007b1f5cdbe9e32ec3947f3617005f8ded70e1 100644 (file)
@@ -19,6 +19,6 @@ include "basic_2/dynamic/lsubsv.ma".
 
 (* Forward lemmas on lenv refinement for degree assignment ******************)
 
-lemma lsubsv_fwd_lsubd: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 â\86\92 G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2.
+lemma lsubsv_fwd_lsubd: â\88\80h,g,G,L1,L2. G â\8a¢ L1 Â¡â«\83[h, g] L2 â\86\92 G â\8a¢ L1 â\96ªâ«\83[h, g] L2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2 // /2 width=1/ /2 width=3/
 qed-.
index dcf7b73478858d26ccc6f070ccde0e283a67de89..e4596e7d4fb57e7becab9f5ac4c8a5c53845a079 100644 (file)
@@ -22,7 +22,7 @@ include "basic_2/dynamic/lsubsv_cpcs.ma".
 (* Properties concerning stratified native validity *************************)
 
 lemma lsubsv_snv_trans: ∀h,g,G,L2,T. ⦃G, L2⦄ ⊢ T ¡[h, g] →
-                        â\88\80L1. G â\8a¢ L1 Â¡â\8a\91[h, g] L2 → ⦃G, L1⦄ ⊢ T ¡[h, g].
+                        â\88\80L1. G â\8a¢ L1 Â¡â«\83[h, g] L2 → ⦃G, L1⦄ ⊢ T ¡[h, g].
 #h #g #G #L2 #T #H elim H -G -L2 -T //
 [ #I #G #L2 #K2 #V #i #HLK2 #_ #IHV #L1 #HL12
   elim (lsubsv_ldrop_O1_trans … HL12 … HLK2) -L2 #X #H #HLK1
index b865349845f0e02500e2a01a9426e564ce3df4ff..a03c3448fe7ba485f48a6400d3df777beb59a59e 100644 (file)
@@ -86,7 +86,7 @@ qed-.
 
 (* Advanced properties ******************************************************)
 
-lemma snv_fqu_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma snv_fqu_conf: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                     ⦃G1, L1⦄ ⊢ T1 ¡[h, g] → ⦃G2, L2⦄ ⊢ T2 ¡[h, g].
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I1 #G1 #L1 #V1 #H
index 8a5e0e323cf7dbbfa88aeecb7940cf98c7e46f65..fcf4a7ee24a6717f12e9eb69b437e7dc6a787e29 100644 (file)
@@ -144,7 +144,7 @@ lemma cpcs_bind_sn: ∀a,I,G,L,V1,V2,T. ⦃G, L⦄ ⊢ V1 ⬌* V2 → ⦃G, L⦄
 qed.
 
 lemma lsubr_cpcs_trans: ∀G,L1,T1,T2. ⦃G, L1⦄ ⊢ T1 ⬌* T2 →
-                        â\88\80L2. L2 â\8a\91 L1 → ⦃G, L2⦄ ⊢ T1 ⬌* T2.
+                        â\88\80L2. L2 â«\83 L1 → ⦃G, L2⦄ ⊢ T1 ⬌* T2.
 #G #L1 #T1 #T2 #HT12 elim (cpcs_inv_cprs … HT12) -HT12
 /3 width=5 by cprs_div, lsubr_cprs_trans/
 qed-.
index bc904846c6361e6deb843c3195d1be42a166bc3f..0996c7cdb221fe65ca202cfdd60b5d038cc0e67f 100644 (file)
@@ -22,7 +22,7 @@ notation "hvbox( ⦃ term 46 h , break term 46 L ⦄ ⊢ break term 46 T ÷ brea
    non associative with precedence 45
    for @{ 'BinaryArity $h $L $T $A }.
 
-notation "hvbox( h â\8a¢ break term 46 L1 Ã· â\8a\91 break term 46 L2 )"
+notation "hvbox( h â\8a¢ break term 46 L1 Ã· â«\83 break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEqB $h $L1 $L2 }.
 
index 185bce94b6be62309311504ae1388d7407c003af..1f0f648886f900eef19a0206fe3b7996fe7b600e 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( L1 â\8a\91 break term 46 L2 )"
+notation "hvbox( L1 â«\83 break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEq $L1 $L2 }.
index ac3928b699a0d350b64ddffbede99201f890143d..e638d21c15becac918233722a29ed6f6b58c99fe 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( G â\8a¢ break term 46 L1 â\8a\91 break [ term 46 R ] break term 46 L2 )"
+notation "hvbox( G â\8a¢ break term 46 L1 â«\83 break [ term 46 R ] break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEq $R $G $L1 $L2 }.
index e46553827b7b4ad937ef2794e71799b39d753f2e..238f43331fd573567eb6d1a4d6e74efaff61551f 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( G â\8a¢ break term 46 L1 â\81\9d â\8a\91 break term 46 L2 )"
+notation "hvbox( G â\8a¢ break term 46 L1 â\81\9d â«\83 break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEqA $G $L1 $L2 }.
index 405f7cc4e3ded94bac3ab97dfb2c4f86f30230b9..c4943b220b7ec51193f54fe8e859a1ed8bdd502a 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( G â\8a¢ break term 46 L1 â\96ª â\8a\91 break [ term 46 h, break term 46 g ] break term 46 L2 )"
+notation "hvbox( G â\8a¢ break term 46 L1 â\96ª â«\83 break [ term 46 h, break term 46 g ] break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEqD $h $g $G $L1 $L2 }.
index a617f7923de713f8e73d05cfee6ea083861f0d5f..3ed8b48b3062361c3faa96deebd7c87f24a90281 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( G â\8a¢ break term 46 L1 Â¡ â\8a\91 break [ term 46 h, break term 46 g ] break term 46 L2 )"
+notation "hvbox( G â\8a¢ break term 46 L1 Â¡ â«\83 break [ term 46 h, break term 46 g ] break term 46 L2 )"
    non associative with precedence 45
    for @{ 'LRSubEqV $h $g $G $L1 $L2 }.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_3.ma b/matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_3.ma
deleted file mode 100644 (file)
index 45328fb..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||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                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-
-notation "hvbox( ⦃ term 46 G , break term 46 L1 ⦄ ⊢ ➡ ➡ * break term 46 L2 )"
-   non associative with precedence 45
-   for @{ 'PRedSnStarAlt $G $L1 $L2 }.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_5.ma b/matita/matita/contribs/lambdadelta/basic_2/notation/relations/predsnstaralt_5.ma
deleted file mode 100644 (file)
index 9682647..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||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                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
-
-notation "hvbox( ⦃ term 46 G, break term 46 L1 ⦄ ⊢ ➡ ➡ * break [ term 46 h , break term 46 g ] break term 46 L2 )"
-   non associative with precedence 45
-   for @{ 'PRedSnStarAlt $h $g $G $L1 $L2 }.
index 23c9669129bf33c6463f4abdedce1ab4d4f19ee6..1300f0fa5bd7f9f3f9a74e67847c14c01f359dc1 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\83 break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\90 break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
    non associative with precedence 45
    for @{ 'SupTerm $G1 $L1 $T1 $G2 $L2 $T2 }.
index ff1e3b5516e0819b71909e3a99444fb6661d519c..8ed1123b44e69d2b9ac3bcbda373d68300e1d6e9 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\83⸮ break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\90⸮ break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
    non associative with precedence 45
    for @{ 'SupTermOpt $G1 $L1 $T1 $G2 $L2 $T2 }.
index f5b529bc346bb9630576c1cdc93dfaafdffa754f..7748c18368698194c719884013c7ad7e192488c4 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\83â\8a\83⸮ break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( â¦\83 term 46 G1, break term 46 L1, break term 46 T1 â¦\84 â\8a\90â\8a\90⸮ break ⦃ term 46 G2, break term 46 L2 , break term 46 T2 ⦄ )"
    non associative with precedence 45
    for @{ 'SupTermOptAlt $G1 $L1 $T1 $G2 $L2 $T2 }.
index 558c62e83b06cd660553adefecc0e736ff555d55..533b88cdf206a68da3c453c07df509a218bf061f 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¦\83 term 46 G1, term 46 L1, break term 46 T1 â¦\84 â\8a\83 + break ⦃ term 46 G2, term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( â¦\83 term 46 G1, term 46 L1, break term 46 T1 â¦\84 â\8a\90 + break ⦃ term 46 G2, term 46 L2 , break term 46 T2 ⦄ )"
    non associative with precedence 45
    for @{ 'SupTermPlus $G1 $L1 $T1 $G2 $L2 $T2 }.
index e4c64a6b68c6c145f14b845476902f7bbbab2fb5..f2abfc20fa4cef5d9eabb817b8ffe8605f656ba0 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¦\83 term 46 G1, term 46 L1, break term 46 T1 â¦\84 â\8a\83 * break ⦃ term 46 G2, term 46 L2 , break term 46 T2 ⦄ )"
+notation "hvbox( â¦\83 term 46 G1, term 46 L1, break term 46 T1 â¦\84 â\8a\90 * break ⦃ term 46 G2, term 46 L2 , break term 46 T2 ⦄ )"
    non associative with precedence 45
    for @{ 'SupTermStar $G1 $L1 $T1 $G2 $L2 $T2 }.
index 9d1d92e8e2d8e52a87a4f93e08388445b4ba5732..786779565d53e08dd72edabed9a1485ac98241fd 100644 (file)
@@ -19,7 +19,9 @@ include "basic_2/reduction/cpr.ma".
 
 (* Properties on lazy sn pointwise extensions *******************************)
 
-lemma cpr_llpx_sn_conf: ∀R. (∀L. reflexive … (R L)) → l_liftable R → l_deliftable_sn R →
+lemma cpr_llpx_sn_conf: ∀R. (∀I,L.reflexive … (R I L)) →
+                            (∀I.l_liftable (R I)) →
+                            (∀I.l_deliftable_sn (R I)) →
                         ∀G. s_r_confluent1 … (cpr G) (llpx_sn R 0).
 #R #H1R #H2R #H3R #G #Ls #T1 #T2 #H elim H -G -Ls -T1 -T2
 [ //
index 45e71b66ee59ecee9d01d34ac3468e7be982f0d0..87cfd3ca3f43a33f41922bc078407d2d3757fe7b 100644 (file)
@@ -139,9 +139,9 @@ qed-.
 
 (* Properties on supclosure *************************************************)
 
-lemma fqu_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                      ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 →
-                     â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                     â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2 
 /3 width=3 by fqu_pair_sn, fqu_bind_dx, fqu_flat_dx, cpx_pair_sn, cpx_bind, cpx_flat, ex2_intro/
 [ #I #G #L #V2 #U2 #HVU2
@@ -153,30 +153,30 @@ lemma fqu_cpx_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L2, T
 ]
 qed-.
 
-lemma fqu_ssta_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_ssta_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                       ∀U2. ⦃G2, L2⦄ ⊢ T2 •[h, g] U2 →
                       ∀l. ⦃G2, L2⦄ ⊢ T2 ▪[h, g] l+1 →
-                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 /3 width=5 by fqu_cpx_trans, ssta_cpx/ qed-.
 
-lemma fquq_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                       ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 →
-                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_cpx_trans … HT12 … HTU2) /3 width=3 by fqu_fquq, ex2_intro/
 | * #H1 #H2 #H3 destruct /2 width=3 by ex2_intro/
 ]
 qed-.
 
-lemma fquq_ssta_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_ssta_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                        ∀U2. ⦃G2, L2⦄ ⊢ T2 •[h, g] U2 →
                        ∀l. ⦃G2, L2⦄ ⊢ T2 ▪[h, g] l+1 →
-                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                       â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 /3 width=5 by fquq_cpx_trans, ssta_cpx/ qed-.
 
-lemma fqup_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma fqup_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                       ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 →
-                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83+ ⦃G2, L2, U2⦄.
+                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90+ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 [ #G2 #L2 #T2 #H12 #U2 #HTU2 elim (fqu_cpx_trans … H12 … HTU2) -T2
   /3 width=3 by fqu_fqup, ex2_intro/
@@ -186,18 +186,18 @@ lemma fqup_cpx_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2, L2,
 ]
 qed-.
 
-lemma fqus_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma fqus_cpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                       ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 →
-                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, L2, U2⦄.
+                      â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 elim (fqus_inv_gen … H) -H
 [ #HT12 elim (fqup_cpx_trans … HT12 … HTU2) /3 width=3 by fqup_fqus, ex2_intro/
 | * #H1 #H2 #H3 destruct /2 width=3 by ex2_intro/
 ]
 qed-.
 
-lemma fqu_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                          ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 → (T2 = U2 → ⊥) →
-                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                         â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G #L #V1 #V2 #HV12 #_ elim (lift_total V2 0 1)
   #U2 #HVU2 @(ex3_intro … U2)
@@ -223,9 +223,9 @@ lemma fqu_cpx_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L
 ]
 qed-.
 
-lemma fquq_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                           ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 → (T2 = U2 → ⊥) →
-                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #U2 #HTU2 #H elim (fquq_inv_gen … H12) -H12
 [ #H12 elim (fqu_cpx_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqu_fquq, ex3_intro/
@@ -233,9 +233,9 @@ lemma fquq_cpx_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃⸮ ⦃G
 ]
 qed-.
 
-lemma fqup_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma fqup_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                           ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 → (T2 = U2 → ⊥) →
-                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83+ ⦃G2, L2, U2⦄.
+                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90+ ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind_dx … H) -G1 -L1 -T1
 [ #G1 #L1 #T1 #H12 #U2 #HTU2 #H elim (fqu_cpx_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqu_fqup, ex3_intro/
@@ -245,9 +245,9 @@ lemma fqup_cpx_trans_neq: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2,
 ]
 qed-.
 
-lemma fqus_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma fqus_cpx_trans_neq: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                           ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡[h, g] U2 → (T2 = U2 → ⊥) →
-                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, L2, U2⦄.
+                          â\88\83â\88\83U1. â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] U1 & T1 = U1 â\86\92 â\8a¥ & â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, L2, U2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H12 #U2 #HTU2 #H elim (fqus_inv_gen … H12) -H12
 [ #H12 elim (fqup_cpx_trans_neq … H12 … HTU2 H) -T2
   /3 width=4 by fqup_fqus, ex3_intro/
index fdef2b6191470be1dce482ef49e57c91b0896b19..46a83164afcdc9c4ff90b7e7e2ecc73290f99646 100644 (file)
@@ -20,7 +20,9 @@ include "basic_2/reduction/cpx.ma".
 (* Properties on lazy sn pointwise extensions *******************************)
 
 (* Note: lemma 1000 *)
-lemma cpx_llpx_sn_conf: ∀R. (∀L. reflexive … (R L)) → l_liftable R → l_deliftable_sn R →
+lemma cpx_llpx_sn_conf: ∀R. (∀I,L.reflexive … (R I L)) →
+                            (∀I.l_liftable (R I)) →
+                            (∀I.l_deliftable_sn (R I)) →
                         ∀h,g,G. s_r_confluent1 … (cpx h g G) (llpx_sn R 0).
 #R #H1R #H2R #H3R #h #g #G #Ls #T1 #T2 #H elim H -G -Ls -T1 -T2
 [ //
index 2ea22a769952aff5056c2bce10877c9de9158b45..40e03d59b29b0f5e44d9c8d225b5656ddf911f5a 100644 (file)
@@ -20,7 +20,7 @@ include "basic_2/reduction/lpx.ma".
 (* "BIG TREE" PARALLEL REDUCTION FOR CLOSURES *******************************)
 
 inductive fpb (h) (g) (G1) (L1) (T1): relation3 genv lenv term ≝
-| fpb_fquq: â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ → fpb h g G1 L1 T1 G2 L2 T2
+| fpb_fquq: â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ → fpb h g G1 L1 T1 G2 L2 T2
 | fpb_cpx : ∀T2. ⦃G1, L1⦄ ⊢ T1 ➡[h, g] T2 → fpb h g G1 L1 T1 G1 L1 T2
 | fpb_lpx : ∀L2. ⦃G1, L1⦄ ⊢ ➡[h, g] L2 → fpb h g G1 L1 T1 G1 L2 T1
 | fpb_lleq: ∀L2. L1 ⋕[T1, 0] L2 → fpb h g G1 L1 T1 G1 L2 T1
index 01966eefb03b9f415c84720c625d9ccac61f9284..fd05f6373d0e0716147d4e3455bbd1630480025b 100644 (file)
@@ -18,7 +18,7 @@ include "basic_2/reduction/cpr.ma".
 
 (* SN PARALLEL REDUCTION FOR LOCAL ENVIRONMENTS *****************************)
 
-definition lpr: relation3 genv lenv lenv ≝ λG. lpx_sn (cpr G).
+definition lpr: relation3 genv lenv lenv ≝ λG. lpx_sn (λ_.cpr G).
 
 interpretation "parallel reduction (local environment, sn variant)"
    'PRedSn G L1 L2 = (lpr G L1 L2).
index c8443e08bf5ab45c10e6a0b9c6de1e3d977472c3..8f268af2ead657d8eb49c8ae3e6c50c35b33902b 100644 (file)
@@ -34,9 +34,9 @@ lemma lpr_ldrop_trans_O1: ∀G. dropable_dx (lpr G).
 
 (* Properties on context-sensitive parallel reduction for terms *************)
 
-lemma fqu_cpr_trans_dx: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_cpr_trans_dx: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                         ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡ U2 →
-                        â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, Lâ¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                        â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, Lâ¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /3 width=5 by fqu_lref_O, fqu_pair_sn, fqu_bind_dx, fqu_flat_dx, lpr_pair, cpr_pair_sn, cpr_atom, cpr_bind, cpr_flat, ex3_2_intro/
 #G #L #K #U #T #e #HLK #HUT #U2 #HU2
@@ -44,18 +44,18 @@ elim (lift_total U2 0 (e+1)) #T2 #HUT2
 lapply (cpr_lift … HU2 … HLK … HUT … HUT2) -HU2 -HUT /3 width=9 by fqu_drop, ex3_2_intro/
 qed-.
 
-lemma fquq_cpr_trans_dx: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_cpr_trans_dx: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                          ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡ U2 →
-                         â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, Lâ¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                         â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, Lâ¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_cpr_trans_dx … HT12 … HTU2) /3 width=5 by fqu_fquq, ex3_2_intro/
 | * #H1 #H2 #H3 destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma fqu_cpr_trans_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_cpr_trans_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                         ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡ U2 →
-                        â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\83 ⦃G2, L2, U2⦄.
+                        â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\90 ⦃G2, L2, U2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /3 width=5 by fqu_lref_O, fqu_pair_sn, fqu_bind_dx, fqu_flat_dx, lpr_pair, cpr_pair_sn, cpr_atom, cpr_bind, cpr_flat, ex3_2_intro/
 #G #L #K #U #T #e #HLK #HUT #U2 #HU2
@@ -63,18 +63,18 @@ elim (lift_total U2 0 (e+1)) #T2 #HUT2
 lapply (cpr_lift … HU2 … HLK … HUT … HUT2) -HU2 -HUT /3 width=9 by fqu_drop, ex3_2_intro/
 qed-.
 
-lemma fquq_cpr_trans_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_cpr_trans_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                          ∀U2. ⦃G2, L2⦄ ⊢ T2 ➡ U2 →
-                         â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\83⸮ ⦃G2, L2, U2⦄.
+                         â\88\83â\88\83L,U1. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ L & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ U1 & â¦\83G1, L, U1â¦\84 â\8a\90⸮ ⦃G2, L2, U2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H #U2 #HTU2 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_cpr_trans_sn … HT12 … HTU2) /3 width=5 by fqu_fquq, ex3_2_intro/
 | * #H1 #H2 #H3 destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma fqu_lpr_trans: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_lpr_trans: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                      ∀K2. ⦃G2, L2⦄ ⊢ ➡ K2 →
-                     â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ T & â¦\83G1, K1, Tâ¦\84 â\8a\83 ⦃G2, K2, T2⦄.
+                     â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ T & â¦\83G1, K1, Tâ¦\84 â\8a\90 ⦃G2, K2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /3 width=5 by fqu_lref_O, fqu_pair_sn, fqu_flat_dx, lpr_pair, ex3_2_intro/
 [ #a #I #G2 #L2 #V2 #T2 #X #H elim (lpr_inv_pair1 … H) -H
@@ -86,9 +86,9 @@ lemma fqu_lpr_trans: ∀G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L2, T2⦄
 ]
 qed-.
 
-lemma fquq_lpr_trans: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_lpr_trans: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                       ∀K2. ⦃G2, L2⦄ ⊢ ➡ K2 →
-                      â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ T & â¦\83G1, K1, Tâ¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄.
+                      â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡ K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡ T & â¦\83G1, K1, Tâ¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H #K2 #HLK2 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_lpr_trans … HT12 … HLK2) /3 width=5 by fqu_fquq, ex3_2_intro/
 | * #H1 #H2 #H3 destruct /2 width=5 by ex3_2_intro/
index 2f653c61bc6e9a9bb1689bf0b524410759095d23..d0b36345539e8b4415e950f93cc84c5108d2b851 100644 (file)
@@ -26,7 +26,7 @@ fact cpr_conf_lpr_atom_atom:
 
 fact cpr_conf_lpr_atom_delta:
    ∀G,L0,i. (
-      â\88\80L,T. â¦\83G, L0, #iâ¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, #iâ¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -50,7 +50,7 @@ qed-.
 (* Basic_1: includes: pr0_delta_delta pr2_delta_delta *)
 fact cpr_conf_lpr_delta_delta:
    ∀G,L0,i. (
-      â\88\80L,T. â¦\83G, L0, #iâ¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, #iâ¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -77,7 +77,7 @@ qed-.
 
 fact cpr_conf_lpr_bind_bind:
    ∀a,I,G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\91{a,I}V0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\91{a,I}V0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -95,7 +95,7 @@ qed-.
 
 fact cpr_conf_lpr_bind_zeta:
    ∀G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, +â\93\93V0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, +â\93\93V0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -112,7 +112,7 @@ qed-.
 
 fact cpr_conf_lpr_zeta_zeta:
    ∀G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, +â\93\93V0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, +â\93\93V0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -131,7 +131,7 @@ qed-.
 
 fact cpr_conf_lpr_flat_flat:
    ∀I,G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\95{I}V0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\95{I}V0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -148,7 +148,7 @@ qed-.
 
 fact cpr_conf_lpr_flat_tau:
    ∀G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\9dV0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\9dV0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -163,7 +163,7 @@ qed-.
 
 fact cpr_conf_lpr_tau_tau:
    ∀G,L0,V0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\9dV0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\9dV0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -178,7 +178,7 @@ qed-.
 
 fact cpr_conf_lpr_flat_beta:
    ∀a,G,L0,V0,W0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\9b{a}W0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\9b{a}W0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -203,7 +203,7 @@ qed-.
 *)
 fact cpr_conf_lpr_flat_theta:
    ∀a,G,L0,V0,W0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\93{a}W0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\93{a}W0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -232,7 +232,7 @@ qed-.
 
 fact cpr_conf_lpr_beta_beta:
    ∀a,G,L0,V0,W0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\9b{a}W0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\9b{a}W0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
@@ -254,7 +254,7 @@ qed-.
 (* Basic_1: was: pr0_upsilon_upsilon *)
 fact cpr_conf_lpr_theta_theta:
    ∀a,G,L0,V0,W0,T0. (
-      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\93{a}W0.T0â¦\84 â\8a\83+ ⦃G, L, T⦄ →
+      â\88\80L,T. â¦\83G, L0, â\93\90V0.â\93\93{a}W0.T0â¦\84 â\8a\90+ ⦃G, L, T⦄ →
       ∀T1. ⦃G, L⦄ ⊢ T ➡ T1 → ∀T2. ⦃G, L⦄ ⊢ T ➡ T2 →
       ∀L1. ⦃G, L⦄ ⊢ ➡ L1 → ∀L2. ⦃G, L⦄ ⊢ ➡ L2 →
       ∃∃T0. ⦃G, L1⦄ ⊢ T1 ➡ T0 & ⦃G, L2⦄ ⊢ T2 ➡ T0
index b10b13a28999b03cdba2ca9f8f805f4e8d62b672..2482329c7d041b4a2d58fbd8f1e09365708b4199 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/reduction/cpx.ma".
 (* SN EXTENDED PARALLEL REDUCTION FOR LOCAL ENVIRONMENTS ********************)
 
 definition lpx: ∀h. sd h → relation3 genv lenv lenv ≝
-                λh,g,G. lpx_sn (cpx h g G).
+                λh,g,G. lpx_sn (λ_.cpx h g G).
 
 interpretation "extended parallel reduction (local environment, sn variant)"
    'PRedSn h g G L1 L2 = (lpx h g G L1 L2).
index e24b05283ee9f97fdb9a90d34861187c2eb06656..5097cc1143e1d49a8c69af92af3492671cd9ba43 100644 (file)
@@ -31,9 +31,9 @@ lemma lpx_ldrop_trans_O1: ∀h,g,G. dropable_dx (lpx h g G).
 
 (* Properties on supclosure *************************************************)
 
-lemma fqu_lpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma fqu_lpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                      ∀K2. ⦃G2, L2⦄ ⊢ ➡[h, g] K2 →
-                     â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡[h, g] K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83 ⦃G2, K2, T2⦄.
+                     â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡[h, g] K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90 ⦃G2, K2, T2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /3 width=5 by fqu_lref_O, fqu_pair_sn, fqu_flat_dx, lpx_pair, ex3_2_intro/
 [ #a #I #G2 #L2 #V2 #T2 #X #H elim (lpx_inv_pair1 … H) -H
@@ -45,18 +45,18 @@ lemma fqu_lpx_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L2, T
 ]
 qed-.
 
-lemma fquq_lpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma fquq_lpx_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                       ∀K2. ⦃G2, L2⦄ ⊢ ➡[h, g] K2 →
-                      â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡[h, g] K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄.
+                      â\88\83â\88\83K1,T. â¦\83G1, L1â¦\84 â\8a¢ â\9e¡[h, g] K1 & â¦\83G1, L1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K2 #HLK2 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (fqu_lpx_trans … HT12 … HLK2) /3 width=5 by fqu_fquq, ex3_2_intro/
 | * #H1 #H2 #H3 destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma lpx_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma lpx_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                      ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 →
-                     â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
+                     â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /3 width=7 by fqu_pair_sn, fqu_bind_dx, fqu_flat_dx, lpx_pair, ex3_2_intro/
 [ #I #G1 #L1 #V1 #X #H elim (lpx_inv_pair2 … H) -H
@@ -68,9 +68,9 @@ lemma lpx_fqu_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L2, T
 ]
 qed-.
 
-lemma lpx_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma lpx_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                       ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 →
-                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
+                      â\88\83â\88\83K2,T. â¦\83G1, K1â¦\84 â\8a¢ T1 â\9e¡[h, g] T & â¦\83G1, K1, Tâ¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K1 #HKL1 elim (fquq_inv_gen … H) -H
 [ #HT12 elim (lpx_fqu_trans … HT12 … HKL1) /3 width=5 by fqu_fquq, ex3_2_intro/
 | * #H1 #H2 #H3 destruct /2 width=5 by ex3_2_intro/
index 8d3f8d68cb721c7108960b7b5ae1a06cace4d96e..182aaae8ac0cc90cae50402660d144b0ea1ed698 100644 (file)
@@ -25,9 +25,9 @@ axiom lleq_lpx_trans: ∀h,g,G,L2,K2. ⦃G, L2⦄ ⊢ ➡[h, g] K2 →
                       ∀L1,T,d. L1 ⋕[T, d] L2 →
                       ∃∃K1. ⦃G, L1⦄ ⊢ ➡[h, g] K1 & K1 ⋕[T, d] K2.
 
-lemma lpx_lleq_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma lpx_lleq_fqu_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                           ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                          â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
+                          â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90 ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G1 #L1 #V1 #X #H1 #H2 elim (lpx_inv_pair2 … H1) -H1
   #K0 #V0 #H1KL1 #_ #H destruct
@@ -54,9 +54,9 @@ lemma lpx_lleq_fqu_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2,
 ]
 qed-.
 
-lemma lpx_lleq_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma lpx_lleq_fquq_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                            ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
+                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90⸮ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K1 #H1KL1 #H2KL1
 elim (fquq_inv_gen … H) -H
 [ #H elim (lpx_lleq_fqu_trans … H … H1KL1 H2KL1) -L1
@@ -65,9 +65,9 @@ elim (fquq_inv_gen … H) -H
 ]
 qed-.
 
-lemma lpx_lleq_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma lpx_lleq_fqup_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                            ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
+                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90+ ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 [ #G2 #L2 #T2 #H #K1 #H1KL1 #H2KL1 elim (lpx_lleq_fqu_trans … H … H1KL1 H2KL1) -L1
   /3 width=4 by fqu_fqup, ex3_intro/
@@ -77,9 +77,9 @@ lemma lpx_lleq_fqup_trans: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃+ ⦃G2
 ]
 qed-.
 
-lemma lpx_lleq_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma lpx_lleq_fqus_trans: â\88\80h,g,G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                            ∀K1. ⦃G1, K1⦄ ⊢ ➡[h, g] L1 → K1 ⋕[T1, 0] L1 →
-                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\83* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
+                           â\88\83â\88\83K2. â¦\83G1, K1, T1â¦\84 â\8a\90* ⦃G2, K2, T2⦄ & ⦃G2, K2⦄ ⊢ ➡[h, g] L2 & K2 ⋕[T2, 0] L2.
 #h #g #G1 #G2 #L1 #L2 #T1 #T2 #H #K1 #H1KL1 #H2KL1
 elim (fqus_inv_gen … H) -H
 [ #H elim (lpx_lleq_fqup_trans … H … H1KL1 H2KL1) -L1
index 46f274def7807a00e6f11e8822b5696e3a9f4333..05cd9a5eb832e72ced331fe275f72003aa275ee5 100644 (file)
@@ -35,17 +35,17 @@ interpretation
 (* Basic properties *********************************************************)
 
 lemma fqu_drop_lt: ∀G,L,K,T,U,e. 0 < e →
-                   â\87©[e] L â\89¡ K â\86\92 â\87§[0, e] T â\89¡ U â\86\92 â¦\83G, L, Uâ¦\84 â\8a\83 ⦃G, K, T⦄.
+                   â\87©[e] L â\89¡ K â\86\92 â\87§[0, e] T â\89¡ U â\86\92 â¦\83G, L, Uâ¦\84 â\8a\90 ⦃G, K, T⦄.
 #G #L #K #T #U #e #He >(plus_minus_m_m e 1) /2 width=3 by fqu_drop/
 qed.
 
-lemma fqu_lref_S_lt: â\88\80I,G,L,V,i. 0 < i â\86\92 â¦\83G, L.â\93\91{I}V, #iâ¦\84 â\8a\83 ⦃G, L, #(i-1)⦄.
+lemma fqu_lref_S_lt: â\88\80I,G,L,V,i. 0 < i â\86\92 â¦\83G, L.â\93\91{I}V, #iâ¦\84 â\8a\90 ⦃G, L, #(i-1)⦄.
 /3 width=3 by fqu_drop, ldrop_drop, lift_lref_ge_minus/
 qed.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma fqu_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} < ♯{G1, L1, T1}.
+lemma fqu_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} < ♯{G1, L1, T1}.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2 //
 #G #L #K #T #U #e #HLK #HTU
 lapply (ldrop_fwd_lw_lt … HLK ?) -HLK // #HKL
@@ -53,7 +53,7 @@ lapply (lift_fwd_tw … HTU) -e #H
 normalize in ⊢ (?%%); /2 width=1 by lt_minus_to_plus/
 qed-.
 
-fact fqu_fwd_length_lref1_aux: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+fact fqu_fwd_length_lref1_aux: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                                ∀i. T1 = #i → |L2| < |L1|.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [1: normalize //
@@ -62,14 +62,14 @@ fact fqu_fwd_length_lref1_aux: ∀G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2,
 ] #I #G #L #V #T #j #H destruct
 qed-.
 
-lemma fqu_fwd_length_lref1: â\88\80G1,G2,L1,L2,T2,i. â¦\83G1, L1, #iâ¦\84 â\8a\83 ⦃G2, L2, T2⦄ → |L2| < |L1|.
+lemma fqu_fwd_length_lref1: â\88\80G1,G2,L1,L2,T2,i. â¦\83G1, L1, #iâ¦\84 â\8a\90 ⦃G2, L2, T2⦄ → |L2| < |L1|.
 /2 width=7 by fqu_fwd_length_lref1_aux/
 qed-.
 
 (* Advanced eliminators *****************************************************)
 
 lemma fqu_wf_ind: ∀R:relation3 …. (
-                     â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ → R G2 L2 T2) →
+                     â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ → R G2 L2 T2) →
                                R G1 L1 T1
                  ) → ∀G1,L1,T1. R G1 L1 T1.
 #R #HR @(f3_ind … fw) #n #IHn #G1 #L1 #T1 #H destruct /4 width=1 by fqu_fwd_fw/
index 6601cb9631055c63cfe4997b00d6e83c1d3c0837..bc6931a466c47b0006838b1e57db54430a2c4c67 100644 (file)
@@ -36,13 +36,13 @@ interpretation
 lemma fquq_refl: tri_reflexive … fquq.
 /2 width=3 by fquq_drop/ qed.
 
-lemma fqu_fquq: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄.
+lemma fqu_fquq: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -L1 -L2 -T1 -T2 /2 width=3 by fquq_drop/
 qed.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma fquq_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
+lemma fquq_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2 /2 width=1 by lt_to_le/
 #G1 #L1 #K1 #T1 #U1 #e #HLK1 #HTU1
 lapply (ldrop_fwd_lw … HLK1) -HLK1
@@ -50,7 +50,7 @@ lapply (lift_fwd_tw … HTU1) -HTU1
 /2 width=1 by le_plus, le_n/
 qed-.
 
-fact fquq_fwd_length_lref1_aux: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+fact fquq_fwd_length_lref1_aux: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                                 ∀i. T1 = #i → |L2| ≤ |L1|.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2 //
 [ #a #I #G #L #V #T #j #H destruct
@@ -59,6 +59,6 @@ fact fquq_fwd_length_lref1_aux: ∀G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃⸮ 
 ]
 qed-.
 
-lemma fquq_fwd_length_lref1: â\88\80G1,G2,L1,L2,T2,i. â¦\83G1, L1, #iâ¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ → |L2| ≤ |L1|.
+lemma fquq_fwd_length_lref1: â\88\80G1,G2,L1,L2,T2,i. â¦\83G1, L1, #iâ¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ → |L2| ≤ |L1|.
 /2 width=7 by fquq_fwd_length_lref1_aux/
 qed-.
index 033959bea950c686a63bb39769a447d4693f836b..c1048857c53a3526f7f2b5d5a427074932651738 100644 (file)
@@ -30,7 +30,7 @@ lemma fquqa_refl: tri_reflexive … fquqa.
 // qed.
 
 lemma fquqa_drop: ∀G,L,K,T,U,e.
-                  â\87©[e] L â\89¡ K â\86\92 â\87§[0, e] T â\89¡ U â\86\92 â¦\83G, L, Uâ¦\84 â\8a\83â\8a\83⸮ ⦃G, K, T⦄.
+                  â\87©[e] L â\89¡ K â\86\92 â\87§[0, e] T â\89¡ U â\86\92 â¦\83G, L, Uâ¦\84 â\8a\90â\8a\90⸮ ⦃G, K, T⦄.
 #G #L #K #T #U #e #HLK #HTU elim (eq_or_gt e)
 /3 width=5 by fqu_drop_lt, or_introl/ #H destruct
 >(ldrop_inv_O2 … HLK) -L >(lift_inv_O2 … HTU) -T //
@@ -38,22 +38,22 @@ qed.
 
 (* Main properties **********************************************************)
 
-theorem fquq_fquqa: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83â\8a\83⸮ ⦃G2, L2, T2⦄.
+theorem fquq_fquqa: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90â\8a\90⸮ ⦃G2, L2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 /2 width=3 by fquqa_drop, fqu_lref_O, fqu_pair_sn, fqu_bind_dx, fqu_flat_dx, or_introl/
 qed.
 
 (* Main inversion properties ************************************************)
 
-theorem fquqa_inv_fquq: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83â\8a\83⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄.
+theorem fquqa_inv_fquq: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90â\8a\90⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -H /2 width=1 by fqu_fquq/
 * #H1 #H2 #H3 destruct //
 qed-.
 
 (* Advanced inversion lemmas ************************************************)
 
-lemma fquq_inv_gen: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
-                    â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ ∨ (∧∧ G1 = G2 & L1 = L2 & T1 = T2).
+lemma fquq_inv_gen: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
+                    â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ ∨ (∧∧ G1 = G2 & L1 = L2 & T1 = T2).
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim (fquq_fquqa … H) -H [| * ]
 /2 width=1 by or_introl/
 qed-.
index 4c4fd5edb047b748369bd580e3b19e3843f3f11c..918b426052b73c1d9d87c04726ed8c4c6bb28bb1 100644 (file)
@@ -17,12 +17,12 @@ include "basic_2/relocation/ldrop.ma".
 
 (* LAZY SN POINTWISE EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS ****)
 
-inductive llpx_sn (R:relation3 lenv term term): relation4 ynat term lenv lenv ≝
+inductive llpx_sn (R:relation4 bind2 lenv term term): relation4 ynat term lenv lenv ≝
 | llpx_sn_sort: ∀L1,L2,d,k. |L1| = |L2| → llpx_sn R d (⋆k) L1 L2
 | llpx_sn_skip: ∀L1,L2,d,i. |L1| = |L2| → yinj i < d → llpx_sn R d (#i) L1 L2
 | llpx_sn_lref: ∀I,L1,L2,K1,K2,V1,V2,d,i. d ≤ yinj i →
                 ⇩[i] L1 ≡ K1.ⓑ{I}V1 → ⇩[i] L2 ≡ K2.ⓑ{I}V2 →
-                llpx_sn R (yinj 0) V1 K1 K2 → R K1 V1 V2 → llpx_sn R d (#i) L1 L2
+                llpx_sn R (yinj 0) V1 K1 K2 → R K1 V1 V2 → llpx_sn R d (#i) L1 L2
 | llpx_sn_free: ∀L1,L2,d,i. |L1| ≤ i → |L2| ≤ i → |L1| = |L2| → llpx_sn R d (#i) L1 L2
 | llpx_sn_gref: ∀L1,L2,d,p. |L1| = |L2| → llpx_sn R d (§p) L1 L2
 | llpx_sn_bind: ∀a,I,L1,L2,V,T,d.
@@ -98,7 +98,7 @@ fact llpx_sn_fwd_lref_aux: ∀R,L1,L2,X,d. llpx_sn R d X L1 L2 → ∀i. X = #i
                             | ∃∃I,K1,K2,V1,V2. ⇩[i] L1 ≡ K1.ⓑ{I}V1 &
                                                ⇩[i] L2 ≡ K2.ⓑ{I}V2 &
                                                llpx_sn R (yinj 0) V1 K1 K2 &
-                                               R K1 V1 V2 & d ≤ yinj i.
+                                               R K1 V1 V2 & d ≤ yinj i.
 #R #L1 #L2 #X #d * -L1 -L2 -X -d
 [ #L1 #L2 #d #k #_ #j #H destruct
 | #L1 #L2 #d #i #_ #Hid #j #H destruct /2 width=1 by or3_intro1/
@@ -117,7 +117,7 @@ lemma llpx_sn_fwd_lref: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 →
                          | ∃∃I,K1,K2,V1,V2. ⇩[i] L1 ≡ K1.ⓑ{I}V1 &
                                             ⇩[i] L2 ≡ K2.ⓑ{I}V2 &
                                             llpx_sn R (yinj 0) V1 K1 K2 &
-                                            R K1 V1 V2 & d ≤ yinj i.
+                                            R K1 V1 V2 & d ≤ yinj i.
 /2 width=3 by llpx_sn_fwd_lref_aux/ qed-.
 
 lemma llpx_sn_fwd_bind_sn: ∀R,a,I,L1,L2,V,T,d. llpx_sn R d (ⓑ{a,I}V.T) L1 L2 →
@@ -147,7 +147,7 @@ qed-.
 
 (* Basic_properties *********************************************************)
 
-lemma llpx_sn_refl: ∀R. (∀L. reflexive … (R L)) → ∀T,L,d. llpx_sn R d T L L.
+lemma llpx_sn_refl: ∀R. (∀I,L. reflexive … (R I L)) → ∀T,L,d. llpx_sn R d T L L.
 #R #HR #T #L @(f2_ind … rfw … L T) -L -T
 #n #IH #L * * /3 width=1 by llpx_sn_sort, llpx_sn_gref, llpx_sn_bind, llpx_sn_flat/
 #i #Hn elim (lt_or_ge i (|L|)) /2 width=1 by llpx_sn_free/
@@ -202,7 +202,7 @@ lemma llpx_sn_bind_O: ∀R,a,I,L1,L2,V,T. llpx_sn R 0 V L1 L2 →
                       llpx_sn R 0 (ⓑ{a,I}V.T) L1 L2.
 /3 width=3 by llpx_sn_ge, llpx_sn_bind/ qed-.
 
-lemma llpx_sn_co: ∀R1,R2. (∀L,T1,T2. R1 L T1 T2 → R2 L T1 T2) →
+lemma llpx_sn_co: ∀R1,R2. (∀I,L,T1,T2. R1 I L T1 T2 → R2 I L T1 T2) →
                   ∀L1,L2,T,d. llpx_sn R1 d T L1 L2 → llpx_sn R2 d T L1 L2.
 #R1 #R2 #HR12 #L1 #L2 #T #d #H elim H -L1 -L2 -T -d
 /3 width=9 by llpx_sn_sort, llpx_sn_skip, llpx_sn_lref, llpx_sn_free, llpx_sn_gref, llpx_sn_bind, llpx_sn_flat/
index bc8528408f5466dd7e016f36dbddf78e8e73dbc1..d0b9b2049620d4e7f873288c99c20efc0e5e6b3f 100644 (file)
@@ -19,10 +19,10 @@ include "basic_2/relocation/llpx_sn.ma".
 (* LAZY SN POINTWISE EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS ****)
 
 (* alternative definition of llpx_sn *)
-inductive llpx_sn_alt (R:relation3 lenv term term): relation4 ynat term lenv lenv ≝
+inductive llpx_sn_alt (R:relation4 bind2 lenv term term): relation4 ynat term lenv lenv ≝
 | llpx_sn_alt_intro: ∀L1,L2,T,d.
                      (∀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 ∧ R K1 V1 V2
+                        ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 → I1 = I2 ∧ R I1 K1 V1 V2
                      ) →
                      (∀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 → llpx_sn_alt R 0 V1 K1 K2
@@ -34,7 +34,7 @@ inductive llpx_sn_alt (R:relation3 lenv term term): relation4 ynat term lenv len
 lemma llpx_sn_alt_intro_alt: ∀R,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 & R K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2
+                                ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2
                              ) → llpx_sn_alt R d T L1 L2.
 #R #L1 #L2 #T #d #HL12 #IH @llpx_sn_alt_intro // -HL12
 #I1 #I2 #K1 #K2 #V1 #V2 #i #Hid #HnT #HLK1 #HLK2
@@ -45,7 +45,7 @@ lemma llpx_sn_alt_ind_alt: ∀R. ∀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 & R K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2 & S 0 V1 K1 K2
+                              ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2 & S 0 V1 K1 K2
                            ) → S d T L1 L2) →
                            ∀L1,L2,T,d. llpx_sn_alt R d T L1 L2 → S d T L1 L2.
 #R #S #IH #L1 #L2 #T #d #H elim H -L1 -L2 -T -d
@@ -58,7 +58,7 @@ lemma llpx_sn_alt_inv_alt: ∀R,L1,L2,T,d. llpx_sn_alt R d T L1 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 →
-                           ∧∧ I1 = I2 & R K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2.
+                           ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn_alt R 0 V1 K1 K2.
 #R #L1 #L2 #T #d #H @(llpx_sn_alt_ind_alt … H) -L1 -L2 -T -d
 #L1 #L2 #T #d #HL12 #IH @conj // -HL12
 #I1 #I2 #K1 #K2 #V1 #V2 #i #Hid #HnT #HLK1 #HLK2
@@ -103,7 +103,7 @@ lemma llpx_sn_alt_fwd_lref: ∀R,L1,L2,d,i. llpx_sn_alt R d (#i) L1 L2 →
                              | ∃∃I,K1,K2,V1,V2. ⇩[i] L1 ≡ K1.ⓑ{I}V1 &
                                                 ⇩[i] L2 ≡ K2.ⓑ{I}V2 &
                                                 llpx_sn_alt R (yinj 0) V1 K1 K2 &
-                                                R K1 V1 V2 & d ≤ yinj i.
+                                                R K1 V1 V2 & d ≤ yinj i.
 #R #L1 #L2 #d #i #H elim (llpx_sn_alt_inv_alt … H) -H
 #HL12 #IH elim (lt_or_ge i (|L1|)) /3 width=1 by or3_intro0, conj/
 elim (ylt_split i d) /3 width=1 by or3_intro1/
@@ -141,7 +141,7 @@ qed.
 
 lemma llpx_sn_alt_lref: ∀R,I,L1,L2,K1,K2,V1,V2,d,i. d ≤ yinj i →
                         ⇩[i] L1 ≡ K1.ⓑ{I}V1 → ⇩[i] L2 ≡ K2.ⓑ{I}V2 →
-                        llpx_sn_alt R 0 V1 K1 K2 → R K1 V1 V2 →
+                        llpx_sn_alt R 0 V1 K1 K2 → R K1 V1 V2 →
                         llpx_sn_alt R d (#i) L1 L2.
 #R #I #L1 #L2 #K1 #K2 #V1 #V2 #d #i #Hdi #HLK1 #HLK2 #HK12 #HV12 @llpx_sn_alt_intro_alt
 [ lapply (llpx_sn_alt_fwd_length … HK12) -HK12 #HK12
@@ -215,7 +215,7 @@ qed-.
 lemma llpx_sn_intro_alt: ∀R,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 & R K1 V1 V2 & llpx_sn R 0 V1 K1 K2
+                            ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn R 0 V1 K1 K2
                          ) → llpx_sn R d T L1 L2.
 #R #L1 #L2 #T #d #HL12 #IH @llpx_sn_alt_inv_lpx_sn
 @llpx_sn_alt_intro_alt // -HL12
@@ -227,7 +227,7 @@ lemma llpx_sn_ind_alt: ∀R. ∀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 & R K1 V1 V2 & llpx_sn R 0 V1 K1 K2 & S 0 V1 K1 K2
+                          ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn R 0 V1 K1 K2 & S 0 V1 K1 K2
                        ) → S d T L1 L2) →
                        ∀L1,L2,T,d. llpx_sn R d T L1 L2 → S d T L1 L2.
 #R #S #IH1 #L1 #L2 #T #d #H lapply (llpx_sn_lpx_sn_alt … H) -H
@@ -241,7 +241,7 @@ lemma llpx_sn_inv_alt: ∀R,L1,L2,T,d. llpx_sn R d T L1 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 →
-                       ∧∧ I1 = I2 & R K1 V1 V2 & llpx_sn R 0 V1 K1 K2.
+                       ∧∧ I1 = I2 & R I1 K1 V1 V2 & llpx_sn R 0 V1 K1 K2.
 #R #L1 #L2 #T #d #H lapply (llpx_sn_lpx_sn_alt … H) -H
 #H elim (llpx_sn_alt_inv_alt … H) -H
 #HL12 #IH @conj //
index 49ee69f7cf4b04113fe725e57ae712829c3ee0dc..313ddd4e06180d64b8ed4b072c09825de580b50c 100644 (file)
@@ -23,7 +23,7 @@ lemma llpx_sn_fwd_lref_dx: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 →
                            ∀I,K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 →
                            i < d ∨
                            ∃∃K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 & llpx_sn R 0 V1 K1 K2 &
-                                    R K1 V1 V2 & d ≤ i.
+                                    R K1 V1 V2 & d ≤ i.
 #R #L1 #L2 #d #i #H #I #K2 #V2 #HLK2 elim (llpx_sn_fwd_lref … H) -H [ * || * ]
 [ #_ #H elim (lt_refl_false i)
   lapply (ldrop_fwd_length_lt2 … HLK2) -HLK2
@@ -39,7 +39,7 @@ lemma llpx_sn_fwd_lref_sn: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 →
                            ∀I,K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 →
                            i < d ∨
                            ∃∃K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 & llpx_sn R 0 V1 K1 K2 &
-                                    R K1 V1 V2 & d ≤ i.
+                                    R K1 V1 V2 & d ≤ i.
 #R #L1 #L2 #d #i #H #I #K1 #V1 #HLK1 elim (llpx_sn_fwd_lref … H) -H [ * || * ]
 [ #H #_ elim (lt_refl_false i)
   lapply (ldrop_fwd_length_lt2 … HLK1) -HLK1
@@ -56,7 +56,7 @@ qed-.
 lemma llpx_sn_inv_lref_ge_dx: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 → d ≤ i →
                               ∀I,K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 →
                               ∃∃K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 &
-                                       llpx_sn R 0 V1 K1 K2 & R K1 V1 V2.
+                                       llpx_sn R 0 V1 K1 K2 & R K1 V1 V2.
 #R #L1 #L2 #d #i #H #Hdi #I #K2 #V2 #HLK2 elim (llpx_sn_fwd_lref_dx … H … HLK2) -L2
 [ #H elim (ylt_yle_false … H Hdi)
 | * /2 width=5 by ex3_2_intro/
@@ -66,7 +66,7 @@ qed-.
 lemma llpx_sn_inv_lref_ge_sn: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 → d ≤ i →
                               ∀I,K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 →
                               ∃∃K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 &
-                                       llpx_sn R 0 V1 K1 K2 & R K1 V1 V2.
+                                       llpx_sn R 0 V1 K1 K2 & R K1 V1 V2.
 #R #L1 #L2 #d #i #H #Hdi #I #K1 #V1 #HLK1 elim (llpx_sn_fwd_lref_sn … H … HLK1) -L1
 [ #H elim (ylt_yle_false … H Hdi)
 | * /2 width=5 by ex3_2_intro/
@@ -76,7 +76,7 @@ qed-.
 lemma llpx_sn_inv_lref_ge_bi: ∀R,L1,L2,d,i. llpx_sn R d (#i) L1 L2 → d ≤ i →
                               ∀I1,I2,K1,K2,V1,V2.
                               ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                              ∧∧ I1 = I2 & llpx_sn R 0 V1 K1 K2 & R K1 V1 V2.
+                              ∧∧ I1 = I2 & llpx_sn R 0 V1 K1 K2 & R I1 K1 V1 V2.
 #R #L1 #L2 #d #i #HL12 #Hdi #I1 #I2 #K1 #K2 #V1 #V2 #HLK1 #HLK2
 elim (llpx_sn_inv_lref_ge_sn … HL12 … HLK1) // -L1 -d
 #J #Y #HY lapply (ldrop_mono … HY … HLK2) -L2 -i #H destruct /2 width=1 by and3_intro/
@@ -84,7 +84,7 @@ qed-.
 
 fact llpx_sn_inv_S_aux: ∀R,L1,L2,T,d0. llpx_sn R d0 T L1 L2 → ∀d. d0 = d + 1 →
                         ∀K1,K2,I,V1,V2. ⇩[d] L1 ≡ K1.ⓑ{I}V1 → ⇩[d] L2 ≡ K2.ⓑ{I}V2 →
-                        llpx_sn R 0 V1 K1 K2 → R K1 V1 V2 → llpx_sn R d T L1 L2.
+                        llpx_sn R 0 V1 K1 K2 → R K1 V1 V2 → llpx_sn R d T L1 L2.
 #R #L1 #L2 #T #d0 #H elim H -L1 -L2 -T -d0
 /2 width=1 by llpx_sn_gref, llpx_sn_free, llpx_sn_sort/
 [ #L1 #L2 #d0 #i #HL12 #Hid #d #H #K1 #K2 #I #V1 #V2 #HLK1 #HLK2 #HK12 #HV12 destruct
@@ -101,10 +101,10 @@ qed-.
 
 lemma llpx_sn_inv_S: ∀R,L1,L2,T,d. llpx_sn R (d + 1) T L1 L2 →
                      ∀K1,K2,I,V1,V2. ⇩[d] L1 ≡ K1.ⓑ{I}V1 → ⇩[d] L2 ≡ K2.ⓑ{I}V2 →
-                     llpx_sn R 0 V1 K1 K2 → R K1 V1 V2 → llpx_sn R d T L1 L2.
+                     llpx_sn R 0 V1 K1 K2 → R K1 V1 V2 → llpx_sn R d T L1 L2.
 /2 width=9 by llpx_sn_inv_S_aux/ qed-.
 
-lemma llpx_sn_inv_bind_O: ∀R. (∀L. reflexive … (R L)) →
+lemma llpx_sn_inv_bind_O: ∀R. (∀I,L. reflexive … (R I L)) →
                           ∀a,I,L1,L2,V,T. llpx_sn R 0 (ⓑ{a,I}V.T) L1 L2 →
                           llpx_sn R 0 V L1 L2 ∧ llpx_sn R 0 T (L1.ⓑ{I}V) (L2.ⓑ{I}V).
 #R #HR #a #I #L1 #L2 #V #T #H elim (llpx_sn_inv_bind … H) -H
@@ -113,7 +113,7 @@ qed-.
 
 (* More advanced forward lemmas *********************************************)
 
-lemma llpx_sn_fwd_bind_O_dx: ∀R. (∀L. reflexive … (R L)) →
+lemma llpx_sn_fwd_bind_O_dx: ∀R. (∀I,L. reflexive … (R I L)) →
                              ∀a,I,L1,L2,V,T. llpx_sn R 0 (ⓑ{a,I}V.T) L1 L2 →
                              llpx_sn R 0 T (L1.ⓑ{I}V) (L2.ⓑ{I}V).
 #R #HR #a #I #L1 #L2 #V #T #H elim (llpx_sn_inv_bind_O … H) -H //
@@ -122,10 +122,10 @@ qed-.
 (* Advanced properties ******************************************************)
 
 lemma llpx_sn_bind_repl_O: ∀R,I,L1,L2,V1,V2,T. llpx_sn R 0 T (L1.ⓑ{I}V1) (L2.ⓑ{I}V2) →
-                           ∀J,W1,W2. llpx_sn R 0 W1 L1 L2 → R L1 W1 W2 → llpx_sn R 0 T (L1.ⓑ{J}W1) (L2.ⓑ{J}W2).
+                           ∀J,W1,W2. llpx_sn R 0 W1 L1 L2 → R L1 W1 W2 → llpx_sn R 0 T (L1.ⓑ{J}W1) (L2.ⓑ{J}W2).
 /3 width=9 by llpx_sn_bind_repl_SO, llpx_sn_inv_S/ qed-.
 
-lemma llpx_sn_dec: ∀R. (∀L,T1,T2. Decidable (R L T1 T2)) →
+lemma llpx_sn_dec: ∀R. (∀I,L,T1,T2. Decidable (R I L T1 T2)) →
                    ∀T,L1,L2,d. Decidable (llpx_sn R d T L1 L2).
 #R #HR #T #L1 @(f2_ind … rfw … L1 T) -L1 -T
 #n #IH #L1 * *
@@ -137,7 +137,7 @@ lemma llpx_sn_dec: ∀R. (∀L,T1,T2. Decidable (R L T1 T2)) →
     elim (ldrop_O1_lt … HiL2) #I2 #K2 #V2 #HLK2
     elim (ldrop_O1_lt … HiL1) #I1 #K1 #V1 #HLK1
     elim (eq_bind2_dec I2 I1)
-    [ #H2 elim (HR K1 V1 V2) -HR
+    [ #H2 elim (HR I1 K1 V1 V2) -HR
       [ #H3 elim (IH K1 V1 … K2 0) destruct
         /3 width=9 by llpx_sn_lref, ldrop_fwd_rfw, or_introl/
       ]
@@ -169,7 +169,7 @@ qed-.
 
 (* Properties on relocation *************************************************)
 
-lemma llpx_sn_lift_le: ∀R. l_liftable R →
+lemma llpx_sn_lift_le: ∀R. (∀I. l_liftable (R I)) →
                        ∀K1,K2,T,d0. llpx_sn R d0 T K1 K2 →
                        ∀L1,L2,d,e. ⇩[Ⓕ, d, e] L1 ≡ K1 → ⇩[Ⓕ, d, e] L2 ≡ K2 →
                        ∀U. ⇧[d, e] T ≡ U → d0 ≤ d → llpx_sn R d0 U L1 L2.
@@ -252,7 +252,7 @@ qed-.
 
 (* Inversion lemmas on relocation *******************************************)
 
-lemma llpx_sn_inv_lift_le: ∀R. l_deliftable_sn R →
+lemma llpx_sn_inv_lift_le: ∀R. (∀I. l_deliftable_sn (R I)) →
                            ∀L1,L2,U,d0. llpx_sn R d0 U L1 L2 →
                            ∀K1,K2,d,e. ⇩[Ⓕ, d, e] L1 ≡ K1 → ⇩[Ⓕ, d, e] L2 ≡ K2 →
                            ∀T. ⇧[d, e] T ≡ U → d0 ≤ d → llpx_sn R d0 T K1 K2.
@@ -409,21 +409,21 @@ qed-.
 
 (* Inversion lemmas on negated lazy pointwise extension *********************)
 
-lemma nllpx_sn_inv_bind: ∀R. (∀L,T1,T2. Decidable (R L T1 T2)) →
+lemma nllpx_sn_inv_bind: ∀R. (∀I,L,T1,T2. Decidable (R I L T1 T2)) →
                          ∀a,I,L1,L2,V,T,d. (llpx_sn R d (ⓑ{a,I}V.T) L1 L2 → ⊥) →
                          (llpx_sn R d V L1 L2 → ⊥) ∨ (llpx_sn R (⫯d) T (L1.ⓑ{I}V) (L2.ⓑ{I}V) → ⊥).
 #R #HR #a #I #L1 #L2 #V #T #d #H elim (llpx_sn_dec … HR V L1 L2 d)
 /4 width=1 by llpx_sn_bind, or_intror, or_introl/
 qed-.
 
-lemma nllpx_sn_inv_flat: ∀R. (∀L,T1,T2. Decidable (R L T1 T2)) →
+lemma nllpx_sn_inv_flat: ∀R. (∀I,L,T1,T2. Decidable (R I L T1 T2)) →
                          ∀I,L1,L2,V,T,d. (llpx_sn R d (ⓕ{I}V.T) L1 L2 → ⊥) →
                          (llpx_sn R d V L1 L2 → ⊥) ∨ (llpx_sn R d T L1 L2 → ⊥).
 #R #HR #I #L1 #L2 #V #T #d #H elim (llpx_sn_dec … HR V L1 L2 d)
 /4 width=1 by llpx_sn_flat, or_intror, or_introl/
 qed-.
 
-lemma nllpx_sn_inv_bind_O: ∀R. (∀L,T1,T2. Decidable (R L T1 T2)) →
+lemma nllpx_sn_inv_bind_O: ∀R. (∀I,L,T1,T2. Decidable (R I L T1 T2)) →
                            ∀a,I,L1,L2,V,T. (llpx_sn R 0 (ⓑ{a,I}V.T) L1 L2 → ⊥) →
                            (llpx_sn R 0 V L1 L2 → ⊥) ∨ (llpx_sn R 0 T (L1.ⓑ{I}V) (L2.ⓑ{I}V) → ⊥).
 #R #HR #a #I #L1 #L2 #V #T #H elim (llpx_sn_dec … HR V L1 L2 0)
index defd027314da56ed613d4bcfbbec2357c7ae85f9..6462115d6a79694f9c7a68f4e3754f122a246802 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/relocation/llpx_sn.ma".
 
 (* Properties on pointwise extensions ***************************************)
 
-lemma lpx_sn_llpx_sn: ∀R. (∀L. reflexive … (R L)) →
+lemma lpx_sn_llpx_sn: ∀R. (∀I,L. reflexive … (R I L)) →
                       ∀T,L1,L2,d. lpx_sn R L1 L2 → llpx_sn R d T L1 L2.
 #R #HR #T #L1 @(f2_ind … rfw … L1 T) -L1 -T
 #n #IH #L1 * *
index e09fe888958fb6afaf33cadd4ebb9d12904543d1..866f8fdd22d9a54efe196fede02ef8039d8ef641 100644 (file)
@@ -18,8 +18,8 @@ include "basic_2/relocation/llpx_sn_ldrop.ma".
 
 (* Properties about transitive closure **************************************)
 
-lemma llpx_sn_TC_pair_dx: ∀R. (∀L. reflexive … (R L)) →
-                          ∀I,L,V1,V2,T. LTC … R L V1 V2 →
+lemma llpx_sn_TC_pair_dx: ∀R. (∀I,L. reflexive … (R I L)) →
+                          ∀I,L,V1,V2,T. LTC … (R I) L V1 V2 →
                           LTC … (llpx_sn R 0) T (L.ⓑ{I}V1) (L.ⓑ{I}V2).
 #R #HR #I #L #V1 #V2 #T #H @(TC_star_ind … V2 H) -V2
 /4 width=9 by llpx_sn_bind_repl_O, llpx_sn_refl, step, inj/
index fddde2de5bdd33df53e458ea82a49f0ca7172eba..eb640da891b1a9f7b97b3a91db504b5d8da0820c 100644 (file)
@@ -16,16 +16,16 @@ include "basic_2/grammar/lenv_length.ma".
 
 (* SN POINTWISE EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS *********)
 
-inductive lpx_sn (R:lenv→relation term): relation lenv ≝
+inductive lpx_sn (R:relation4 bind2 lenv term term): relation lenv ≝
 | lpx_sn_atom: lpx_sn R (⋆) (⋆)
 | lpx_sn_pair: ∀I,K1,K2,V1,V2.
-               lpx_sn R K1 K2 → R K1 V1 V2 →
-               lpx_sn R (K1. ⓑ{I} V1) (K2. ⓑ{I} V2)
+               lpx_sn R K1 K2 → R K1 V1 V2 →
+               lpx_sn R (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
 .
 
 (* Basic properties *********************************************************)
 
-lemma lpx_sn_refl: ∀R. (∀L. reflexive ? (R L)) → reflexive … (lpx_sn R).
+lemma lpx_sn_refl: ∀R. (∀I,L. reflexive ? (R I L)) → reflexive … (lpx_sn R).
 #R #HR #L elim L -L /2 width=1 by lpx_sn_atom, lpx_sn_pair/
 qed-.
 
@@ -41,16 +41,16 @@ qed-.
 lemma lpx_sn_inv_atom1: ∀R,L2. lpx_sn R (⋆) L2 → L2 = ⋆.
 /2 width=4 by lpx_sn_inv_atom1_aux/ qed-.
 
-fact lpx_sn_inv_pair1_aux: ∀R,L1,L2. lpx_sn R L1 L2 → ∀I,K1,V1. L1 = K1. ⓑ{I} V1 →
-                           ∃∃K2,V2. lpx_sn R K1 K2 & R K1 V1 V2 & L2 = K2. ⓑ{I} V2.
+fact lpx_sn_inv_pair1_aux: ∀R,L1,L2. lpx_sn R L1 L2 → ∀I,K1,V1. L1 = K1.ⓑ{I}V1 →
+                           ∃∃K2,V2. lpx_sn R K1 K2 & R I K1 V1 V2 & L2 = K2.ⓑ{I}V2.
 #R #L1 #L2 * -L1 -L2
 [ #J #K1 #V1 #H destruct
 | #I #K1 #K2 #V1 #V2 #HK12 #HV12 #J #L #W #H destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma lpx_sn_inv_pair1: ∀R,I,K1,V1,L2. lpx_sn R (K1. ⓑ{I} V1) L2 →
-                        ∃∃K2,V2. lpx_sn R K1 K2 & R K1 V1 V2 & L2 = K2. ⓑ{I} V2.
+lemma lpx_sn_inv_pair1: ∀R,I,K1,V1,L2. lpx_sn R (K1.ⓑ{I}V1) L2 →
+                        ∃∃K2,V2. lpx_sn R K1 K2 & R I K1 V1 V2 & L2 = K2.ⓑ{I}V2.
 /2 width=3 by lpx_sn_inv_pair1_aux/ qed-.
 
 fact lpx_sn_inv_atom2_aux: ∀R,L1,L2. lpx_sn R L1 L2 → L2 = ⋆ → L1 = ⋆.
@@ -63,21 +63,21 @@ qed-.
 lemma lpx_sn_inv_atom2: ∀R,L1. lpx_sn R L1 (⋆) → L1 = ⋆.
 /2 width=4 by lpx_sn_inv_atom2_aux/ qed-.
 
-fact lpx_sn_inv_pair2_aux: ∀R,L1,L2. lpx_sn R L1 L2 → ∀I,K2,V2. L2 = K2. ⓑ{I} V2 →
-                           ∃∃K1,V1. lpx_sn R K1 K2 & R K1 V1 V2 & L1 = K1. ⓑ{I} V1.
+fact lpx_sn_inv_pair2_aux: ∀R,L1,L2. lpx_sn R L1 L2 → ∀I,K2,V2. L2 = K2.ⓑ{I}V2 →
+                           ∃∃K1,V1. lpx_sn R K1 K2 & R I K1 V1 V2 & L1 = K1.ⓑ{I}V1.
 #R #L1 #L2 * -L1 -L2
 [ #J #K2 #V2 #H destruct
 | #I #K1 #K2 #V1 #V2 #HK12 #HV12 #J #K #W #H destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma lpx_sn_inv_pair2: ∀R,I,L1,K2,V2. lpx_sn R L1 (K2. ⓑ{I} V2) →
-                        ∃∃K1,V1. lpx_sn R K1 K2 & R K1 V1 V2 & L1 = K1. ⓑ{I} V1.
+lemma lpx_sn_inv_pair2: ∀R,I,L1,K2,V2. lpx_sn R L1 (K2.ⓑ{I}V2) →
+                        ∃∃K1,V1. lpx_sn R K1 K2 & R I K1 V1 V2 & L1 = K1.ⓑ{I}V1.
 /2 width=3 by lpx_sn_inv_pair2_aux/ qed-.
 
 lemma lpx_sn_inv_pair: ∀R,I1,I2,L1,L2,V1,V2.
                        lpx_sn R (L1.ⓑ{I1}V1) (L2.ⓑ{I2}V2) →
-                       ∧∧ lpx_sn R L1 L2 & R L1 V1 V2 & I1 = I2.
+                       ∧∧ lpx_sn R L1 L2 & R I1 L1 V1 V2 & I1 = I2.
 #R #I1 #I2 #L1 #L2 #V1 #V2 #H elim (lpx_sn_inv_pair1 … H) -H
 #L0 #V0 #HL10 #HV10 #H destruct /2 width=1 by and3_intro/
 qed-.
index 4f9ae350b9348528002e04eb195abe51f7913033..8a0aa39317b06207086a899c6bcb15b316a229f1 100644 (file)
@@ -18,11 +18,11 @@ include "basic_2/relocation/lpx_sn.ma".
 (* SN POINTWISE EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS *********)
 
 (* alternative definition of lpx_sn *)
-definition lpx_sn_alt: relation3 lenv term term → relation lenv ≝
+definition lpx_sn_alt: relation4 bind2 lenv term term → relation lenv ≝
                        λR,L1,L2. |L1| = |L2| ∧
                        (∀I1,I2,K1,K2,V1,V2,i.
                           ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                          I1 = I2 ∧ R K1 V1 V2
+                          I1 = I2 ∧ R I1 K1 V1 V2
                        ).
 
 (* Basic forward lemmas ******************************************************)
@@ -39,7 +39,7 @@ normalize /2 width=1 by length_inv_zero_sn/
 qed-.
 
 lemma lpx_sn_alt_inv_pair1: ∀R,I,L2,K1,V1. lpx_sn_alt R (K1.ⓑ{I}V1) L2 →
-                            ∃∃K2,V2. lpx_sn_alt R K1 K2 & R K1 V1 V2 & L2 = K2.ⓑ{I}V2.
+                            ∃∃K2,V2. lpx_sn_alt R K1 K2 & R K1 V1 V2 & L2 = K2.ⓑ{I}V2.
 #R #I1 #L2 #K1 #V1 #H elim H -H
 #H #IH elim (length_inv_pos_sn … H) -H
 #I2 #K2 #V2 #HK12 #H destruct
@@ -56,7 +56,7 @@ normalize /2 width=1 by length_inv_zero_dx/
 qed-.
 
 lemma lpx_sn_alt_inv_pair2: ∀R,I,L1,K2,V2. lpx_sn_alt R L1 (K2.ⓑ{I}V2) →
-                            ∃∃K1,V1. lpx_sn_alt R K1 K2 & R K1 V1 V2 & L1 = K1.ⓑ{I}V1.
+                            ∃∃K1,V1. lpx_sn_alt R K1 K2 & R K1 V1 V2 & L1 = K1.ⓑ{I}V1.
 #R #I2 #L1 #K2 #V2 #H elim H -H
 #H #IH elim (length_inv_pos_dx … H) -H
 #I1 #K1 #V1 #HK12 #H destruct
@@ -76,7 +76,7 @@ lemma lpx_sn_alt_atom: ∀R. lpx_sn_alt R (⋆) (⋆).
 qed.
 
 lemma lpx_sn_alt_pair: ∀R,I,L1,L2,V1,V2.
-                       lpx_sn_alt R L1 L2 → R L1 V1 V2 →
+                       lpx_sn_alt R L1 L2 → R L1 V1 V2 →
                        lpx_sn_alt R (L1.ⓑ{I}V1) (L2.ⓑ{I}V2).
 #R #I #L1 #L2 #V1 #V2 #H #HV12 elim H -H
 #HL12 #IH @conj normalize //
@@ -111,7 +111,7 @@ qed-.
 lemma lpx_sn_intro_alt: ∀R,L1,L2. |L1| = |L2| →
                         (∀I1,I2,K1,K2,V1,V2,i.
                            ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                           I1 = I2 ∧ R K1 V1 V2
+                           I1 = I2 ∧ R I1 K1 V1 V2
                         ) → lpx_sn R L1 L2.
 /4 width=4 by lpx_sn_alt_inv_lpx_sn, conj/ qed.
 
@@ -119,7 +119,7 @@ lemma lpx_sn_inv_alt: ∀R,L1,L2. lpx_sn R L1 L2 →
                       |L1| = |L2| ∧
                       ∀I1,I2,K1,K2,V1,V2,i.
                       ⇩[i] L1 ≡ K1.ⓑ{I1}V1 → ⇩[i] L2 ≡ K2.ⓑ{I2}V2 →
-                      I1 = I2 ∧ R K1 V1 V2.
+                      I1 = I2 ∧ R I1 K1 V1 V2.
 #R #L1 #L2 #H lapply (lpx_sn_lpx_sn_alt … H) -H
 #H elim H -H /3 width=4 by conj/
 qed-.
index 1edda764020b36df4c0722ade52443f66c2945fa..2b44e20fb2eff348b6ac8e073c84baf8e5cb5a7b 100644 (file)
@@ -21,7 +21,7 @@ include "basic_2/relocation/lpx_sn.ma".
 
 lemma lpx_sn_ldrop_conf: ∀R,L1,L2. lpx_sn R L1 L2 →
                          ∀I,K1,V1,i. ⇩[i] L1 ≡ K1.ⓑ{I}V1 →
-                         ∃∃K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 & lpx_sn R K1 K2 & R K1 V1 V2.
+                         ∃∃K2,V2. ⇩[i] L2 ≡ K2.ⓑ{I}V2 & lpx_sn R K1 K2 & R K1 V1 V2.
 #R #L1 #L2 #H elim H -L1 -L2
 [ #I0 #K0 #V0 #i #H elim (ldrop_inv_atom1 … H) -H #H destruct
 | #I #K1 #K2 #V1 #V2 #HK12 #HV12 #IHK12 #I0 #K0 #V0 #i #H elim (ldrop_inv_O1_pair1 … H) * -H
@@ -34,7 +34,7 @@ qed-.
 
 lemma lpx_sn_ldrop_trans: ∀R,L1,L2. lpx_sn R L1 L2 →
                           ∀I,K2,V2,i. ⇩[i] L2 ≡ K2.ⓑ{I}V2 →
-                          ∃∃K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 & lpx_sn R K1 K2 & R K1 V1 V2.
+                          ∃∃K1,V1. ⇩[i] L1 ≡ K1.ⓑ{I}V1 & lpx_sn R K1 K2 & R K1 V1 V2.
 #R #L1 #L2 #H elim H -L1 -L2
 [ #I0 #K0 #V0 #i #H elim (ldrop_inv_atom1 … H) -H #H destruct
 | #I #K1 #K2 #V1 #V2 #HK12 #HV12 #IHK12 #I0 #K0 #V0 #i #H elim (ldrop_inv_O1_pair1 … H) * -H
@@ -45,7 +45,7 @@ lemma lpx_sn_ldrop_trans: ∀R,L1,L2. lpx_sn R L1 L2 →
 ]
 qed-.
 
-lemma lpx_sn_deliftable_dropable: ∀R. l_deliftable_sn R → dropable_sn (lpx_sn R).
+lemma lpx_sn_deliftable_dropable: ∀R. (∀I. l_deliftable_sn (R I)) → dropable_sn (lpx_sn R).
 #R #HR #L1 #K1 #s #d #e #H elim H -L1 -K1 -d -e
 [ #d #e #He #X #H >(lpx_sn_inv_atom1 … H) -H
   /4 width=3 by ldrop_atom, lpx_sn_atom, ex2_intro/
@@ -62,8 +62,8 @@ lemma lpx_sn_deliftable_dropable: ∀R. l_deliftable_sn R → dropable_sn (lpx_s
 ]
 qed-.
 
-lemma lpx_sn_liftable_dedropable: ∀R. (∀L. reflexive ? (R L)) →
-                                  l_liftable R → dedropable_sn (lpx_sn R).
+lemma lpx_sn_liftable_dedropable: ∀R. (∀I,L. reflexive ? (R I L)) →
+                                  (∀I. l_liftable (R I)) → dedropable_sn (lpx_sn R).
 #R #H1R #H2R #L1 #K1 #s #d #e #H elim H -L1 -K1 -d -e
 [ #d #e #He #X #H >(lpx_sn_inv_atom1 … H) -H
   /4 width=4 by ldrop_atom, lpx_sn_atom, ex3_intro/
index 3cd97e96d891e6ad9605118f18f1247aeb62c6a9..bd72cf61eefab1627272aa860f72c648a70283b1 100644 (file)
@@ -16,33 +16,33 @@ include "basic_2/relocation/lpx_sn.ma".
 
 (* SN POINTWISE EXTENSION OF A CONTEXT-SENSITIVE REALTION FOR TERMS *********)
 
-definition lpx_sn_confluent: relation (lenv→relation term) ≝ λR1,R2.
+definition lpx_sn_confluent: relation (relation3 lenv term term) ≝ λR1,R2.
                              ∀L0,T0,T1. R1 L0 T0 T1 → ∀T2. R2 L0 T0 T2 →
-                             ∀L1. lpx_sn R1 L0 L1 → ∀L2. lpx_sn R2 L0 L2 →
+                             ∀L1. lpx_sn (λ_.R1) L0 L1 → ∀L2. lpx_sn (λ_.R2) L0 L2 →
                              ∃∃T. R2 L1 T1 T & R1 L2 T2 T.
 
-definition lpx_sn_transitive: relation (lenv→relation term) ≝ λR1,R2.
-                              ∀L1,T1,T. R1 L1 T1 T → ∀L2. lpx_sn R1 L1 L2 →
+definition lpx_sn_transitive: relation (relation3 lenv term term) ≝ λR1,R2.
+                              ∀L1,T1,T. R1 L1 T1 T → ∀L2. lpx_sn (λ_.R1) L1 L2 →
                               ∀T2. R2 L2 T T2 → R1 L1 T1 T2.
 
 (* Main properties **********************************************************)
 
-theorem lpx_sn_trans: ∀R. lpx_sn_transitive R R → Transitive … (lpx_sn R).
+theorem lpx_sn_trans: ∀R. lpx_sn_transitive R R → Transitive … (lpx_sn (λ_.R)).
 #R #HR #L1 #L #H elim H -L1 -L //
 #I #L1 #L #V1 #V #HL1 #HV1 #IHL1 #X #H
-elim (lpx_sn_inv_pair1 … H) -H #L2 #V2 #HL2 #HV2 #H destruct /3 width=5/
+elim (lpx_sn_inv_pair1 … H) -H #L2 #V2 #HL2 #HV2 #H destruct /3 width=5 by lpx_sn_pair/
 qed-.
 
 theorem lpx_sn_conf: ∀R1,R2. lpx_sn_confluent R1 R2 →
-                     confluent2 … (lpx_sn R1) (lpx_sn R2).
+                     confluent2 … (lpx_sn (λ_.R1)) (lpx_sn (λ_.R2)).
 #R1 #R2 #HR12 #L0 @(f_ind … length … L0) -L0 #n #IH *
 [ #_ #X1 #H1 #X2 #H2 -n
   >(lpx_sn_inv_atom1 … H1) -X1
-  >(lpx_sn_inv_atom1 … H2) -X2 /2 width=3/
+  >(lpx_sn_inv_atom1 … H2) -X2 /2 width=3 by lpx_sn_atom, ex2_intro/
 | #L0 #I #V0 #Hn #X1 #H1 #X2 #H2 destruct
   elim (lpx_sn_inv_pair1 … H1) -H1 #L1 #V1 #HL01 #HV01 #H destruct
   elim (lpx_sn_inv_pair1 … H2) -H2 #L2 #V2 #HL02 #HV02 #H destruct
   elim (IH … HL01 … HL02) -IH normalize // #L #HL1 #HL2
-  elim (HR12 … HV01 … HV02 … HL01 … HL02) -L0 -V0 /3 width=5/
+  elim (HR12 … HV01 … HV02 … HL01 … HL02) -L0 -V0 /3 width=5 by lpx_sn_pair, ex2_intro/
 ]
 qed-.
index e994bf0769202b50d428e8061e56bc30697abac4..2a3a87cf4f97feb4677c3ff248e4f88ea60c6527 100644 (file)
@@ -18,9 +18,9 @@ include "basic_2/relocation/lpx_sn.ma".
 
 (* Properties on transitive_closure *****************************************)
 
-lemma TC_lpx_sn_pair_refl: ∀R. (∀L. reflexive … (R L)) →
+lemma TC_lpx_sn_pair_refl: ∀R. (∀I,L. reflexive … (R I L)) →
                            ∀L1,L2. TC … (lpx_sn R) L1 L2 →
-                           ∀I,V. TC … (lpx_sn R) (L1. ⓑ{I} V) (L2. ⓑ{I} V).
+                           ∀I,V. TC … (lpx_sn R) (L1.ⓑ{I}V) (L2. ⓑ{I}V).
 #R #HR #L1 #L2 #H @(TC_star_ind … L2 H) -L2
 [ /2 width=1 by lpx_sn_refl/
 | /3 width=1 by TC_reflexive, lpx_sn_refl/
@@ -28,18 +28,18 @@ lemma TC_lpx_sn_pair_refl: ∀R. (∀L. reflexive … (R L)) →
 ]
 qed-.
 
-lemma TC_lpx_sn_pair: ∀R. (∀L. reflexive … (R L)) →
+lemma TC_lpx_sn_pair: ∀R. (∀I,L. reflexive … (R I L)) →
                       ∀I,L1,L2. TC … (lpx_sn R) L1 L2 →
-                      ∀V1,V2. LTC … R L1 V1 V2 →
-                      TC … (lpx_sn R) (L1. ⓑ{I} V1) (L2. ⓑ{I} V2).
+                      ∀V1,V2. LTC … (R I) L1 V1 V2 →
+                      TC … (lpx_sn R) (L1.ⓑ{I}V1) (L2. ⓑ{I}V2).
 #R #HR #I #L1 #L2 #HL12 #V1 #V2 #H @(TC_star_ind_dx … V1 H) -V1 //
 [ /2 width=1 by TC_lpx_sn_pair_refl/
 | /4 width=3 by TC_strap, lpx_sn_pair, lpx_sn_refl/
 ]
 qed-.
 
-lemma lpx_sn_LTC_TC_lpx_sn: ∀R. (∀L. reflexive … (R L)) →
-                            ∀L1,L2. lpx_sn (LTC … R) L1 L2 →
+lemma lpx_sn_LTC_TC_lpx_sn: ∀R. (∀I,L. reflexive … (R I L)) →
+                            ∀L1,L2. lpx_sn (λI.LTC … (R I)) L1 L2 →
                             TC … (lpx_sn R) L1 L2.
 #R #HR #L1 #L2 #H elim H -L1 -L2
 /2 width=1 by TC_lpx_sn_pair, lpx_sn_atom, inj/
@@ -54,9 +54,9 @@ lemma TC_lpx_sn_inv_atom2: ∀R,L1. TC … (lpx_sn R) L1 (⋆) → L1 = ⋆.
 ]
 qed-.
 
-lemma TC_lpx_sn_inv_pair2: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
+lemma TC_lpx_sn_inv_pair2: ∀R. (∀I.s_rs_transitive … (R I) (λ_.lpx_sn R)) →
                            ∀I,L1,K2,V2. TC  … (lpx_sn R) L1 (K2.ⓑ{I}V2) →
-                           ∃∃K1,V1. TC … (lpx_sn R) K1 K2 & LTC … R K1 V1 V2 & L1 = K1. ⓑ{I} V1.
+                           ∃∃K1,V1. TC … (lpx_sn R) K1 K2 & LTC … (R I) K1 V1 V2 & L1 = K1.ⓑ{I}V1.
 #R #HR #I #L1 #K2 #V2 #H @(TC_ind_dx … L1 H) -L1
 [ #L1 #H elim (lpx_sn_inv_pair2 … H) -H /3 width=5 by inj, ex3_2_intro/
 | #L1 #L #HL1 #_ * #K #V #HK2 #HV2 #H destruct
@@ -65,11 +65,11 @@ lemma TC_lpx_sn_inv_pair2: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
 ]
 qed-.
 
-lemma TC_lpx_sn_ind: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
+lemma TC_lpx_sn_ind: ∀R. (∀I.s_rs_transitive … (R I) (λ_.lpx_sn R)) →
                      ∀S:relation lenv.
                      S (⋆) (⋆) → (
                         ∀I,K1,K2,V1,V2.
-                        TC … (lpx_sn R) K1 K2 → LTC … R K1 V1 V2 →
+                        TC … (lpx_sn R) K1 K2 → LTC … (R I) K1 V1 V2 →
                         S K1 K2 → S (K1.ⓑ{I}V1) (K2.ⓑ{I}V2)
                      ) →
                      ∀L2,L1. TC … (lpx_sn R) L1 L2 → S L1 L2.
@@ -88,24 +88,24 @@ lemma TC_lpx_sn_inv_atom1: ∀R,L2. TC … (lpx_sn R) (⋆) L2 → L2 = ⋆.
 ]
 qed-.
 
-fact TC_lpx_sn_inv_pair1_aux: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
+fact TC_lpx_sn_inv_pair1_aux: ∀R. (∀I.s_rs_transitive … (R I) (λ_.lpx_sn R)) →
                               ∀L1,L2. TC … (lpx_sn R) L1 L2 →
                               ∀I,K1,V1. L1 = K1.ⓑ{I}V1 →
-                              ∃∃K2,V2. TC … (lpx_sn R) K1 K2 & LTC … R K1 V1 V2 & L2 = K2. ⓑ{I} V2.
+                              ∃∃K2,V2. TC … (lpx_sn R) K1 K2 & LTC … (R I) K1 V1 V2 & L2 = K2. ⓑ{I} V2.
 #R #HR #L1 #L2 #H @(TC_lpx_sn_ind … H) // -HR -L1 -L2
 [ #J #K #W #H destruct
 | #I #L1 #L2 #V1 #V2 #HL12 #HV12 #_ #J #K #W #H destruct /2 width=5 by ex3_2_intro/
 ]
 qed-.
 
-lemma TC_lpx_sn_inv_pair1: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
+lemma TC_lpx_sn_inv_pair1: ∀R. (∀I.s_rs_transitive … (R I) (λ_.lpx_sn R)) →
                            ∀I,K1,L2,V1. TC … (lpx_sn R) (K1.ⓑ{I}V1) L2 →
-                           ∃∃K2,V2. TC … (lpx_sn R) K1 K2 & LTC … R K1 V1 V2 & L2 = K2. ⓑ{I} V2.
+                           ∃∃K2,V2. TC … (lpx_sn R) K1 K2 & LTC … (R I) K1 V1 V2 & L2 = K2. ⓑ{I} V2.
 /2 width=3 by TC_lpx_sn_inv_pair1_aux/ qed-.
 
-lemma TC_lpx_sn_inv_lpx_sn_LTC: ∀R. s_rs_transitive … R (λ_. lpx_sn R) →
+lemma TC_lpx_sn_inv_lpx_sn_LTC: ∀R. (∀I.s_rs_transitive … (R I) (λ_.lpx_sn R)) →
                                 ∀L1,L2. TC … (lpx_sn R) L1 L2 →
-                                lpx_sn (LTC … R) L1 L2.
+                                lpx_sn (λI.LTC … (R I)) L1 L2.
 /3 width=4 by TC_lpx_sn_ind, lpx_sn_pair/ qed-.
 
 (* Forward lemmas on transitive closure *************************************)
index f9bd61ada9e118d0016ab869e84ef7836e4740a0..f0153d5a26cd4defb84d7caddfea7cc533c27472 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/static/aaa_lift.ma".
 
 (* Properties on supclosure *************************************************)
 
-lemma aaa_fqu_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
+lemma aaa_fqu_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
                     ∀A1. ⦃G1, L1⦄ ⊢ T1 ⁝ A1 → ∃A2. ⦃G2, L2⦄ ⊢ T2 ⁝ A2.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim H -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G #L #T #A #H elim (aaa_inv_lref … H) -H
@@ -43,20 +43,20 @@ lemma aaa_fqu_conf: ∀G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊃ ⦃G2, L2, T2⦄
 ]
 qed-.
 
-lemma aaa_fquq_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
+lemma aaa_fquq_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
                      ∀A1. ⦃G1, L1⦄ ⊢ T1 ⁝ A1 → ∃A2. ⦃G2, L2⦄ ⊢ T2 ⁝ A2.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim(fquq_inv_gen … H) -H /2 width=6 by aaa_fqu_conf/
 * #H1 #H2 #H3 destruct /2 width=2 by ex_intro/
 qed-.
 
-lemma aaa_fqup_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
+lemma aaa_fqup_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
                      ∀A1. ⦃G1, L1⦄ ⊢ T1 ⁝ A1 → ∃A2. ⦃G2, L2⦄ ⊢ T2 ⁝ A2.
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 [2: #G #G2 #L #L2 #T #T2 #_ #H2 #IH1 #A #HA elim (IH1 … HA) -IH1 -A ]
 /2 width=6 by aaa_fqu_conf/
 qed-.
 
-lemma aaa_fqus_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
+lemma aaa_fqus_conf: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
                      ∀A1. ⦃G1, L1⦄ ⊢ T1 ⁝ A1 → ∃A2. ⦃G2, L2⦄ ⊢ T2 ⁝ A2.
 #G1 #G2 #L1 #L2 #T1 #T2 #H elim(fqus_inv_gen … H) -H /2 width=6 by aaa_fqup_conf/
 * #H1 #H2 #H3 destruct /2 width=2 by ex_intro/
index 6d437b8c22c809dedf028d8bb83d9cae16838503..8c8aa228686d6863a7bf349e8e271e15742f7484 100644 (file)
@@ -31,7 +31,7 @@ interpretation
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lsuba_inv_atom1_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → L1 = ⋆ → L2 = ⋆.
+fact lsuba_inv_atom1_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → L1 = ⋆ → L2 = ⋆.
 #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -39,13 +39,13 @@ fact lsuba_inv_atom1_aux: ∀G,L1,L2. G ⊢ L1 ⁝⊑ L2 → L1 = ⋆ → L2 = 
 ]
 qed-.
 
-lemma lsuba_inv_atom1: â\88\80G,L2. G â\8a¢ â\8b\86 â\81\9dâ\8a\91 L2 → L2 = ⋆.
+lemma lsuba_inv_atom1: â\88\80G,L2. G â\8a¢ â\8b\86 â\81\9dâ«\83 L2 → L2 = ⋆.
 /2 width=4 by lsuba_inv_atom1_aux/ qed-.
 
-fact lsuba_inv_pair1_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
-                          (â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & L2 = K2.ⓑ{I}X) ∨
+fact lsuba_inv_pair1_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
+                          (â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ«\83 K2 & L2 = K2.ⓑ{I}X) ∨
                           ∃∃K2,W,V,A. ⦃G, K1⦄ ⊢ ⓝW.V ⁝ A & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                      G â\8a¢ K1 â\81\9dâ\8a\91 K2 & I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
+                                      G â\8a¢ K1 â\81\9dâ«\83 K2 & I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 #G #L1 #L2 * -L1 -L2
 [ #J #K1 #X #H destruct
 | #I #L1 #L2 #V #HL12 #J #K1 #X #H destruct /3 width=3/
@@ -53,13 +53,13 @@ fact lsuba_inv_pair1_aux: ∀G,L1,L2. G ⊢ L1 ⁝⊑ L2 → ∀I,K1,X. L1 = K1.
 ]
 qed-.
 
-lemma lsuba_inv_pair1: â\88\80I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â\81\9dâ\8a\91 L2 →
-                       (â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & L2 = K2.ⓑ{I}X) ∨
-                       â\88\83â\88\83K2,W,V,A. â¦\83G, K1â¦\84 â\8a¢ â\93\9dW.V â\81\9d A & â¦\83G, K2â¦\84 â\8a¢ W â\81\9d A & G â\8a¢ K1 â\81\9dâ\8a\91 K2 &
+lemma lsuba_inv_pair1: â\88\80I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â\81\9dâ«\83 L2 →
+                       (â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ«\83 K2 & L2 = K2.ⓑ{I}X) ∨
+                       â\88\83â\88\83K2,W,V,A. â¦\83G, K1â¦\84 â\8a¢ â\93\9dW.V â\81\9d A & â¦\83G, K2â¦\84 â\8a¢ W â\81\9d A & G â\8a¢ K1 â\81\9dâ«\83 K2 &
                                    I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 /2 width=3 by lsuba_inv_pair1_aux/ qed-.
 
-fact lsuba_inv_atom2_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → L2 = ⋆ → L1 = ⋆.
+fact lsuba_inv_atom2_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → L2 = ⋆ → L1 = ⋆.
 #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -67,13 +67,13 @@ fact lsuba_inv_atom2_aux: ∀G,L1,L2. G ⊢ L1 ⁝⊑ L2 → L2 = ⋆ → L1 = 
 ]
 qed-.
 
-lemma lsubc_inv_atom2: â\88\80G,L1. G â\8a¢ L1 â\81\9dâ\8a\91 ⋆ → L1 = ⋆.
+lemma lsubc_inv_atom2: â\88\80G,L1. G â\8a¢ L1 â\81\9dâ«\83 ⋆ → L1 = ⋆.
 /2 width=4 by lsuba_inv_atom2_aux/ qed-.
 
-fact lsuba_inv_pair2_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ∀I,K2,W. L2 = K2.ⓑ{I}W →
-                          (â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & L1 = K1.ⓑ{I}W) ∨
+fact lsuba_inv_pair2_aux: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → ∀I,K2,W. L2 = K2.ⓑ{I}W →
+                          (â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ«\83 K2 & L1 = K1.ⓑ{I}W) ∨
                           ∃∃K1,V,A. ⦃G, K1⦄ ⊢ ⓝW.V ⁝ A & ⦃G, K2⦄ ⊢ W ⁝ A &
-                                    G â\8a¢ K1 â\81\9dâ\8a\91 K2 & I = Abst & L1 = K1.ⓓⓝW.V.
+                                    G â\8a¢ K1 â\81\9dâ«\83 K2 & I = Abst & L1 = K1.ⓓⓝW.V.
 #G #L1 #L2 * -L1 -L2
 [ #J #K2 #U #H destruct
 | #I #L1 #L2 #V #HL12 #J #K2 #U #H destruct /3 width=3/
@@ -81,20 +81,20 @@ fact lsuba_inv_pair2_aux: ∀G,L1,L2. G ⊢ L1 ⁝⊑ L2 → ∀I,K2,W. L2 = K2.
 ]
 qed-.
 
-lemma lsuba_inv_pair2: â\88\80I,G,L1,K2,W. G â\8a¢ L1 â\81\9dâ\8a\91 K2.ⓑ{I}W →
-                       (â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & L1 = K1.ⓑ{I}W) ∨
-                       â\88\83â\88\83K1,V,A. â¦\83G, K1â¦\84 â\8a¢ â\93\9dW.V â\81\9d A & â¦\83G, K2â¦\84 â\8a¢ W â\81\9d A & G â\8a¢ K1 â\81\9dâ\8a\91 K2 &
+lemma lsuba_inv_pair2: â\88\80I,G,L1,K2,W. G â\8a¢ L1 â\81\9dâ«\83 K2.ⓑ{I}W →
+                       (â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ«\83 K2 & L1 = K1.ⓑ{I}W) ∨
+                       â\88\83â\88\83K1,V,A. â¦\83G, K1â¦\84 â\8a¢ â\93\9dW.V â\81\9d A & â¦\83G, K2â¦\84 â\8a¢ W â\81\9d A & G â\8a¢ K1 â\81\9dâ«\83 K2 &
                                  I = Abst & L1 = K1.ⓓⓝW.V.
 /2 width=3 by lsuba_inv_pair2_aux/ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma lsuba_fwd_lsubr: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 â\86\92 L1 â\8a\91 L2.
+lemma lsuba_fwd_lsubr: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 â\86\92 L1 â«\83 L2.
 #G #L1 #L2 #H elim H -L1 -L2 // /2 width=1/
 qed-.
 
 (* Basic properties *********************************************************)
 
-lemma lsuba_refl: â\88\80G,L. G â\8a¢ L â\81\9dâ\8a\91 L.
+lemma lsuba_refl: â\88\80G,L. G â\8a¢ L â\81\9dâ«\83 L.
 #G #L elim L -L // /2 width=1/
 qed.
index 8818ae48c0de4343ccd882afdc211cfa0e8dacc9..65b4fd7832d3d403c0d364e45d5b13fac6947c80 100644 (file)
@@ -20,7 +20,7 @@ include "basic_2/static/lsuba_ldrop.ma".
 (* Properties concerning atomic arity assignment ****************************)
 
 lemma lsuba_aaa_conf: ∀G,L1,V,A. ⦃G, L1⦄ ⊢ V ⁝ A →
-                      â\88\80L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ⦃G, L2⦄ ⊢ V ⁝ A.
+                      â\88\80L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → ⦃G, L2⦄ ⊢ V ⁝ A.
 #G #L1 #V #A #H elim H -G -L1 -V -A
 [ //
 | #I #G #L1 #K1 #V #A #i #HLK1 #HV #IHV #L2 #HL12
@@ -38,7 +38,7 @@ lemma lsuba_aaa_conf: ∀G,L1,V,A. ⦃G, L1⦄ ⊢ V ⁝ A →
 qed-.
 
 lemma lsuba_aaa_trans: ∀G,L2,V,A. ⦃G, L2⦄ ⊢ V ⁝ A →
-                       â\88\80L1. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ⦃G, L1⦄ ⊢ V ⁝ A.
+                       â\88\80L1. G â\8a¢ L1 â\81\9dâ«\83 L2 → ⦃G, L1⦄ ⊢ V ⁝ A.
 #G #L2 #V #A #H elim H -G -L2 -V -A
 [ //
 | #I #G #L2 #K2 #V #A #i #HLK2 #H1V #IHV #L1 #HL12
index 43de659bf42f9965ca567ae2ba22737a38e1819f..2ac48f35144522f6fa97b80130067a1aeae1b5b8 100644 (file)
@@ -19,8 +19,8 @@ include "basic_2/static/lsuba.ma".
 (* Properties concerning basic local environment slicing ********************)
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsuba_ldrop_O1_conf: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ∀K1,s,e. ⇩[s, 0, e] L1 ≡ K1 →
-                           â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & ⇩[s, 0, e] L2 ≡ K2.
+lemma lsuba_ldrop_O1_conf: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → ∀K1,s,e. ⇩[s, 0, e] L1 ≡ K1 →
+                           â\88\83â\88\83K2. G â\8a¢ K1 â\81\9dâ«\83 K2 & ⇩[s, 0, e] L2 ≡ K2.
 #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3/
 | #I #L1 #L2 #V #_ #IHL12 #K1 #s #e #H
@@ -41,8 +41,8 @@ lemma lsuba_ldrop_O1_conf: ∀G,L1,L2. G ⊢ L1 ⁝⊑ L2 → ∀K1,s,e. ⇩[s,
 qed-.
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsuba_ldrop_O1_trans: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ\8a\91 L2 → ∀K2,s,e. ⇩[s, 0, e] L2 ≡ K2 →
-                            â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ\8a\91 K2 & ⇩[s, 0, e] L1 ≡ K1.
+lemma lsuba_ldrop_O1_trans: â\88\80G,L1,L2. G â\8a¢ L1 â\81\9dâ«\83 L2 → ∀K2,s,e. ⇩[s, 0, e] L2 ≡ K2 →
+                            â\88\83â\88\83K1. G â\8a¢ K1 â\81\9dâ«\83 K2 & ⇩[s, 0, e] L1 ≡ K1.
 #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3/
 | #I #L1 #L2 #V #_ #IHL12 #K2 #s #e #H
index eb7ae1386e663b6dc64c002d73f3fd0ce879bfb3..e14012c45d8f95f413af5d04cfa708f03d7f03f0 100644 (file)
@@ -18,7 +18,7 @@ include "basic_2/static/lsuba_aaa.ma".
 
 (* Main properties **********************************************************)
 
-theorem lsuba_trans: â\88\80G,L1,L. G â\8a¢ L1 â\81\9dâ\8a\91 L â\86\92 â\88\80L2. G â\8a¢ L â\81\9dâ\8a\91 L2 â\86\92 G â\8a¢ L1 â\81\9dâ\8a\91 L2.
+theorem lsuba_trans: â\88\80G,L1,L. G â\8a¢ L1 â\81\9dâ«\83 L â\86\92 â\88\80L2. G â\8a¢ L â\81\9dâ«\83 L2 â\86\92 G â\8a¢ L1 â\81\9dâ«\83 L2.
 #G #L1 #L #H elim H -L1 -L
 [ #X #H >(lsuba_inv_atom1 … H) -H //
 | #I #L1 #L #Y #HL1 #IHL1 #X #H
index c79161304fbd59a97b9e063e59c93570f274abbf..d6cf867a8d0e54700f489abced21249f84398408 100644 (file)
@@ -32,13 +32,13 @@ interpretation
 
 (* Basic_forward lemmas *****************************************************)
 
-lemma lsubd_fwd_lsubr: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 â\86\92 L1 â\8a\91 L2.
+lemma lsubd_fwd_lsubr: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 â\86\92 L1 â«\83 L2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2 /2 width=1 by lsubr_bind, lsubr_abst/
 qed-.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lsubd_inv_atom1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 → L1 = ⋆ → L2 = ⋆.
+fact lsubd_inv_atom1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 → L1 = ⋆ → L2 = ⋆.
 #h #g #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -46,14 +46,14 @@ fact lsubd_inv_atom1_aux: ∀h,g,G,L1,L2. G ⊢ L1 ▪⊑[h, g] L2 → L1 = ⋆
 ]
 qed-.
 
-lemma lsubd_inv_atom1: â\88\80h,g,G,L2. G â\8a¢ â\8b\86 â\96ªâ\8a\91[h, g] L2 → L2 = ⋆.
+lemma lsubd_inv_atom1: â\88\80h,g,G,L2. G â\8a¢ â\8b\86 â\96ªâ«\83[h, g] L2 → L2 = ⋆.
 /2 width=6 by lsubd_inv_atom1_aux/ qed-.
 
-fact lsubd_inv_pair1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 →
+fact lsubd_inv_pair1_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 →
                           ∀I,K1,X. L1 = K1.ⓑ{I}X →
-                          (â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
+                          (â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
                           ∃∃K2,W,V,l. ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                      G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 &
+                                      G â\8a¢ K1 â\96ªâ«\83[h, g] K2 &
                                       I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 #h #g #G #L1 #L2 * -L1 -L2
 [ #J #K1 #X #H destruct
@@ -62,14 +62,14 @@ fact lsubd_inv_pair1_aux: ∀h,g,G,L1,L2. G ⊢ L1 ▪⊑[h, g] L2 →
 ]
 qed-.
 
-lemma lsubd_inv_pair1: â\88\80h,g,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â\96ªâ\8a\91[h, g] L2 →
-                       (â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
+lemma lsubd_inv_pair1: â\88\80h,g,I,G,K1,L2,X. G â\8a¢ K1.â\93\91{I}X â\96ªâ«\83[h, g] L2 →
+                       (â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & L2 = K2.ⓑ{I}X) ∨
                        ∃∃K2,W,V,l. ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                   G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 &
+                                   G â\8a¢ K1 â\96ªâ«\83[h, g] K2 &
                                    I = Abbr & L2 = K2.ⓛW & X = ⓝW.V.
 /2 width=3 by lsubd_inv_pair1_aux/ qed-.
 
-fact lsubd_inv_atom2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 → L2 = ⋆ → L1 = ⋆.
+fact lsubd_inv_atom2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 → L2 = ⋆ → L1 = ⋆.
 #h #g #G #L1 #L2 * -L1 -L2
 [ //
 | #I #L1 #L2 #V #_ #H destruct
@@ -77,14 +77,14 @@ fact lsubd_inv_atom2_aux: ∀h,g,G,L1,L2. G ⊢ L1 ▪⊑[h, g] L2 → L2 = ⋆
 ]
 qed-.
 
-lemma lsubd_inv_atom2: â\88\80h,g,G,L1. G â\8a¢ L1 â\96ªâ\8a\91[h, g] ⋆ → L1 = ⋆.
+lemma lsubd_inv_atom2: â\88\80h,g,G,L1. G â\8a¢ L1 â\96ªâ«\83[h, g] ⋆ → L1 = ⋆.
 /2 width=6 by lsubd_inv_atom2_aux/ qed-.
 
-fact lsubd_inv_pair2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 →
+fact lsubd_inv_pair2_aux: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 →
                           ∀I,K2,W. L2 = K2.ⓑ{I}W →
-                          (â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
+                          (â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
                           ∃∃K1,V,l. ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                    G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
+                                    G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
 #h #g #G #L1 #L2 * -L1 -L2
 [ #J #K2 #U #H destruct
 | #I #L1 #L2 #V #HL12 #J #K2 #U #H destruct /3 width=3 by ex2_intro, or_introl/
@@ -92,22 +92,22 @@ fact lsubd_inv_pair2_aux: ∀h,g,G,L1,L2. G ⊢ L1 ▪⊑[h, g] L2 →
 ]
 qed-.
 
-lemma lsubd_inv_pair2: â\88\80h,g,I,G,L1,K2,W. G â\8a¢ L1 â\96ªâ\8a\91[h, g] K2.ⓑ{I}W →
-                       (â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
+lemma lsubd_inv_pair2: â\88\80h,g,I,G,L1,K2,W. G â\8a¢ L1 â\96ªâ«\83[h, g] K2.ⓑ{I}W →
+                       (â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & L1 = K1.ⓑ{I}W) ∨
                        ∃∃K1,V,l. ⦃G, K1⦄ ⊢ V ▪[h, g] l+1 & ⦃G, K2⦄ ⊢ W ▪[h, g] l &
-                                 G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
+                                 G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & I = Abst & L1 = K1. ⓓⓝW.V.
 /2 width=3 by lsubd_inv_pair2_aux/ qed-.
 
 (* Basic properties *********************************************************)
 
-lemma lsubd_refl: â\88\80h,g,G,L. G â\8a¢ L â\96ªâ\8a\91[h, g] L.
+lemma lsubd_refl: â\88\80h,g,G,L. G â\8a¢ L â\96ªâ«\83[h, g] L.
 #h #g #G #L elim L -L /2 width=1 by lsubd_pair/
 qed.
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsubd_ldrop_O1_conf: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 →
+lemma lsubd_ldrop_O1_conf: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 →
                            ∀K1,s,e. ⇩[s, 0, e] L1 ≡ K1 →
-                           â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & ⇩[s, 0, e] L2 ≡ K2.
+                           â\88\83â\88\83K2. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & ⇩[s, 0, e] L2 ≡ K2.
 #h #g #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #V #_ #IHL12 #K1 #s #e #H
@@ -128,9 +128,9 @@ lemma lsubd_ldrop_O1_conf: ∀h,g,G,L1,L2. G ⊢ L1 ▪⊑[h, g] L2 →
 qed-.
 
 (* Note: the constant 0 cannot be generalized *)
-lemma lsubd_ldrop_O1_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 →
+lemma lsubd_ldrop_O1_trans: â\88\80h,g,G,L1,L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 →
                             ∀K2,s,e. ⇩[s, 0, e] L2 ≡ K2 →
-                            â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ\8a\91[h, g] K2 & ⇩[s, 0, e] L1 ≡ K1.
+                            â\88\83â\88\83K1. G â\8a¢ K1 â\96ªâ«\83[h, g] K2 & ⇩[s, 0, e] L1 ≡ K1.
 #h #g #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #V #_ #IHL12 #K2 #s #e #H
index 99ebd60ce4192c12f2dac2ec08467e37cd41443c..2dddc71dd50f1cd9a4fb7178734dd039c03dc0c5 100644 (file)
@@ -20,7 +20,7 @@ include "basic_2/static/lsubd.ma".
 (* Properties on degree assignment ******************************************)
 
 lemma lsubd_da_trans: ∀h,g,G,L2,T,l. ⦃G, L2⦄ ⊢ T ▪[h, g] l →
-                      â\88\80L1. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 → ⦃G, L1⦄ ⊢ T ▪[h, g] l.
+                      â\88\80L1. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 → ⦃G, L1⦄ ⊢ T ▪[h, g] l.
 #h #g #G #L2 #T #l #H elim H -G -L2 -T -l
 [ /2 width=1/
 | #G #L2 #K2 #V #i #l #HLK2 #_ #IHV #L1 #HL12
@@ -42,7 +42,7 @@ lemma lsubd_da_trans: ∀h,g,G,L2,T,l. ⦃G, L2⦄ ⊢ T ▪[h, g] l →
 qed-.
 
 lemma lsubd_da_conf: ∀h,g,G,L1,T,l. ⦃G, L1⦄ ⊢ T ▪[h, g] l →
-                     â\88\80L2. G â\8a¢ L1 â\96ªâ\8a\91[h, g] L2 → ⦃G, L2⦄ ⊢ T ▪[h, g] l.
+                     â\88\80L2. G â\8a¢ L1 â\96ªâ«\83[h, g] L2 → ⦃G, L2⦄ ⊢ T ▪[h, g] l.
 #h #g #G #L1 #T #l #H elim H -G -L1 -T -l
 [ /2 width=1/
 | #G #L1 #K1 #V #i #l #HLK1 #HV #IHV #L2 #HL12
index e96683a80e96fc536957699695a2065bc013b7e4..1d1a01beb2f18195ee95925c3f42eca1b7ca1e27 100644 (file)
@@ -29,24 +29,24 @@ interpretation
 
 (* Basic properties *********************************************************)
 
-lemma lsubr_refl: â\88\80L. L â\8a\91 L.
+lemma lsubr_refl: â\88\80L. L â«\83 L.
 #L elim L -L /2 width=1 by lsubr_sort, lsubr_bind/
 qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lsubr_inv_atom1_aux: â\88\80L1,L2. L1 â\8a\91 L2 → L1 = ⋆ → L2 = ⋆.
+fact lsubr_inv_atom1_aux: â\88\80L1,L2. L1 â«\83 L2 → L1 = ⋆ → L2 = ⋆.
 #L1 #L2 * -L1 -L2 //
 [ #I #L1 #L2 #V #_ #H destruct
 | #L1 #L2 #V #W #_ #H destruct
 ]
 qed-.
 
-lemma lsubr_inv_atom1: â\88\80L2. â\8b\86 â\8a\91 L2 → L2 = ⋆.
+lemma lsubr_inv_atom1: â\88\80L2. â\8b\86 â«\83 L2 → L2 = ⋆.
 /2 width=3 by lsubr_inv_atom1_aux/ qed-.
 
-fact lsubr_inv_abst1_aux: â\88\80L1,L2. L1 â\8a\91 L2 → ∀K1,W. L1 = K1.ⓛW →
-                          L2 = â\8b\86 â\88¨ â\88\83â\88\83K2. K1 â\8a\91 K2 & L2 = K2.ⓛW.
+fact lsubr_inv_abst1_aux: â\88\80L1,L2. L1 â«\83 L2 → ∀K1,W. L1 = K1.ⓛW →
+                          L2 = â\8b\86 â\88¨ â\88\83â\88\83K2. K1 â«\83 K2 & L2 = K2.ⓛW.
 #L1 #L2 * -L1 -L2
 [ #L #K1 #W #H destruct /2 width=1 by or_introl/
 | #I #L1 #L2 #V #HL12 #K1 #W #H destruct /3 width=3 by ex2_intro, or_intror/
@@ -54,12 +54,12 @@ fact lsubr_inv_abst1_aux: ∀L1,L2. L1 ⊑ L2 → ∀K1,W. L1 = K1.ⓛW →
 ]
 qed-.
 
-lemma lsubr_inv_abst1: â\88\80K1,L2,W. K1.â\93\9bW â\8a\91 L2 →
-                       L2 = â\8b\86 â\88¨ â\88\83â\88\83K2. K1 â\8a\91 K2 & L2 = K2.ⓛW.
+lemma lsubr_inv_abst1: â\88\80K1,L2,W. K1.â\93\9bW â«\83 L2 →
+                       L2 = â\8b\86 â\88¨ â\88\83â\88\83K2. K1 â«\83 K2 & L2 = K2.ⓛW.
 /2 width=3 by lsubr_inv_abst1_aux/ qed-.
 
-fact lsubr_inv_abbr2_aux: â\88\80L1,L2. L1 â\8a\91 L2 → ∀K2,W. L2 = K2.ⓓW →
-                          â\88\83â\88\83K1. K1 â\8a\91 K2 & L1 = K1.ⓓW.
+fact lsubr_inv_abbr2_aux: â\88\80L1,L2. L1 â«\83 L2 → ∀K2,W. L2 = K2.ⓓW →
+                          â\88\83â\88\83K1. K1 â«\83 K2 & L1 = K1.ⓓW.
 #L1 #L2 * -L1 -L2
 [ #L #K2 #W #H destruct
 | #I #L1 #L2 #V #HL12 #K2 #W #H destruct /2 width=3 by ex2_intro/
@@ -67,20 +67,20 @@ fact lsubr_inv_abbr2_aux: ∀L1,L2. L1 ⊑ L2 → ∀K2,W. L2 = K2.ⓓW →
 ]
 qed-.
 
-lemma lsubr_inv_abbr2: â\88\80L1,K2,W. L1 â\8a\91 K2.ⓓW →
-                       â\88\83â\88\83K1. K1 â\8a\91 K2 & L1 = K1.ⓓW.
+lemma lsubr_inv_abbr2: â\88\80L1,K2,W. L1 â«\83 K2.ⓓW →
+                       â\88\83â\88\83K1. K1 â«\83 K2 & L1 = K1.ⓓW.
 /2 width=3 by lsubr_inv_abbr2_aux/ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma lsubr_fwd_length: â\88\80L1,L2. L1 â\8a\91 L2 → |L2| ≤ |L1|.
+lemma lsubr_fwd_length: â\88\80L1,L2. L1 â«\83 L2 → |L2| ≤ |L1|.
 #L1 #L2 #H elim H -L1 -L2 /2 width=1 by monotonic_le_plus_l/
 qed-.
 
-lemma lsubr_fwd_ldrop2_bind: â\88\80L1,L2. L1 â\8a\91 L2 →
+lemma lsubr_fwd_ldrop2_bind: â\88\80L1,L2. L1 â«\83 L2 →
                              ∀I,K2,W,s,i. ⇩[s, 0, i] L2 ≡ K2.ⓑ{I}W →
-                             (â\88\83â\88\83K1. K1 â\8a\91 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓑ{I}W) ∨
-                             â\88\83â\88\83K1,V. K1 â\8a\91 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓓⓝW.V & I = Abst.
+                             (â\88\83â\88\83K1. K1 â«\83 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓑ{I}W) ∨
+                             â\88\83â\88\83K1,V. K1 â«\83 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓓⓝW.V & I = Abst.
 #L1 #L2 #H elim H -L1 -L2
 [ #L #I #K2 #W #s #i #H
   elim (ldrop_inv_atom1 … H) -H #H destruct
@@ -99,9 +99,9 @@ lemma lsubr_fwd_ldrop2_bind: ∀L1,L2. L1 ⊑ L2 →
 ]
 qed-.
 
-lemma lsubr_fwd_ldrop2_abbr: â\88\80L1,L2. L1 â\8a\91 L2 →
+lemma lsubr_fwd_ldrop2_abbr: â\88\80L1,L2. L1 â«\83 L2 →
                              ∀K2,V,s,i. ⇩[s, 0, i] L2 ≡ K2.ⓓV →
-                             â\88\83â\88\83K1. K1 â\8a\91 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓓV.
+                             â\88\83â\88\83K1. K1 â«\83 K2 & ⇩[s, 0, i] L1 ≡ K1.ⓓV.
 #L1 #L2 #HL12 #K2 #V #s #i #HLK2 elim (lsubr_fwd_ldrop2_bind … HL12 … HLK2) -L2 // *
 #K1 #W #_ #_ #H destruct
 qed-.
index 9c3fec807ce2ac7b9364473a4552746dff90faf6..937f6f78c30893dd323b3cdbaea9ca9a3b4d667f 100644 (file)
@@ -18,10 +18,10 @@ include "basic_2/static/lsubr.ma".
 
 (* Auxiliary inversion lemmas ***********************************************)
 
-fact lsubr_inv_bind1_aux: â\88\80L1,L2. L1 â\8a\91 L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
+fact lsubr_inv_bind1_aux: â\88\80L1,L2. L1 â«\83 L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
                           ∨∨ L2 = ⋆
-                           | â\88\83â\88\83K2. K1 â\8a\91 K2 & L2 = K2.ⓑ{I}X
-                           | â\88\83â\88\83K2,V,W. K1 â\8a\91 K2 & L2 = K2.ⓛW &
+                           | â\88\83â\88\83K2. K1 â«\83 K2 & L2 = K2.ⓑ{I}X
+                           | â\88\83â\88\83K2,V,W. K1 â«\83 K2 & L2 = K2.ⓛW &
                                        I = Abbr & X = ⓝW.V.
 #L1 #L2 * -L1 -L2
 [ #L #J #K1 #X #H destruct /2 width=1 by or3_intro0/
@@ -30,10 +30,10 @@ fact lsubr_inv_bind1_aux: ∀L1,L2. L1 ⊑ L2 → ∀I,K1,X. L1 = K1.ⓑ{I}X →
 ]
 qed-.
 
-lemma lsubr_inv_bind1: â\88\80I,K1,L2,X. K1.â\93\91{I}X â\8a\91 L2 →
+lemma lsubr_inv_bind1: â\88\80I,K1,L2,X. K1.â\93\91{I}X â«\83 L2 →
                        ∨∨ L2 = ⋆
-                        | â\88\83â\88\83K2. K1 â\8a\91 K2 & L2 = K2.ⓑ{I}X
-                        | â\88\83â\88\83K2,V,W. K1 â\8a\91 K2 & L2 = K2.ⓛW &
+                        | â\88\83â\88\83K2. K1 â«\83 K2 & L2 = K2.ⓑ{I}X
+                        | â\88\83â\88\83K2,V,W. K1 â«\83 K2 & L2 = K2.ⓛW &
                                     I = Abbr & X = ⓝW.V.
 /2 width=3 by lsubr_inv_bind1_aux/ qed-.
 
index 72122143a7ab7d865b71eaf785829fb43b9955a4..8d2ed4dc4a0ec9bb8b4001bd0ae745d817a0f2c5 100644 (file)
@@ -19,7 +19,8 @@ include "basic_2/static/ssta.ma".
 
 (* Properties on lazy sn pointwise extensions *******************************)
 
-lemma ssta_llpx_sn_conf: ∀R. (∀L. reflexive … (R L)) → l_liftable R →
+lemma ssta_llpx_sn_conf: ∀R. (∀I,L.reflexive … (R I L)) →
+                             (∀I.l_liftable (R I)) →
                          ∀h,g,G. s_r_confluent1 … (ssta h g G) (llpx_sn R 0).
 #R #H1R #H2R #h #g #G #Ls #T1 #T2 #H elim H -G -Ls -T1 -T2
 [ /3 width=4 by llpx_sn_fwd_length, llpx_sn_sort/
index e68fe729b677cc3de04a028dd9f25b84e43dd66b..1e1ede2f2054bf2166132f63b714efc7298f08d5 100644 (file)
@@ -24,62 +24,62 @@ interpretation "plus-iterated structural successor (closure)"
 
 (* Basic properties *********************************************************)
 
-lemma fqu_fqup: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+lemma fqu_fqup: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 /2 width=1 by tri_inj/ qed.
 
 lemma fqup_strap1: ∀G1,G,G2,L1,L,L2,T1,T,T2.
-                   â¦\83G1, L1, T1â¦\84 â\8a\83+ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
-                   â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+                   â¦\83G1, L1, T1â¦\84 â\8a\90+ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
+                   â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 /2 width=5 by tri_step/ qed.
 
 lemma fqup_strap2: ∀G1,G,G2,L1,L,L2,T1,T,T2.
-                   â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
-                   â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+                   â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
+                   â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 /2 width=5 by tri_TC_strap/ qed.
 
 lemma fqup_ldrop: ∀G1,G2,L1,K1,K2,T1,T2,U1,e. ⇩[e] L1 ≡ K1 → ⇧[0, e] T1 ≡ U1 →
-                  â¦\83G1, K1, T1â¦\84 â\8a\83+ â¦\83G2, K2, T2â¦\84 â\86\92 â¦\83G1, L1, U1â¦\84 â\8a\83+ ⦃G2, K2, T2⦄.
+                  â¦\83G1, K1, T1â¦\84 â\8a\90+ â¦\83G2, K2, T2â¦\84 â\86\92 â¦\83G1, L1, U1â¦\84 â\8a\90+ ⦃G2, K2, T2⦄.
 #G1 #G2 #L1 #K1 #K2 #T1 #T2 #U1 #e #HLK1 #HTU1 #HT12 elim (eq_or_gt … e) #H destruct
 [ >(ldrop_inv_O2 … HLK1) -L1 <(lift_inv_O2 … HTU1) -U1 //
 | /3 width=5 by fqup_strap2, fqu_drop_lt/
 ]
 qed-.
 
-lemma fqup_lref: â\88\80I,G,L,K,V,i. â\87©[i] L â\89¡ K.â\93\91{I}V â\86\92 â¦\83G, L, #iâ¦\84 â\8a\83+ ⦃G, K, V⦄.
+lemma fqup_lref: â\88\80I,G,L,K,V,i. â\87©[i] L â\89¡ K.â\93\91{I}V â\86\92 â¦\83G, L, #iâ¦\84 â\8a\90+ ⦃G, K, V⦄.
 /3 width=6 by fqu_lref_O, fqu_fqup, lift_lref_ge, fqup_ldrop/ qed.
 
-lemma fqup_pair_sn: â\88\80I,G,L,V,T. â¦\83G, L, â\91¡{I}V.Tâ¦\84 â\8a\83+ ⦃G, L, V⦄.
+lemma fqup_pair_sn: â\88\80I,G,L,V,T. â¦\83G, L, â\91¡{I}V.Tâ¦\84 â\8a\90+ ⦃G, L, V⦄.
 /2 width=1 by fqu_pair_sn, fqu_fqup/ qed.
 
-lemma fqup_bind_dx: â\88\80a,I,G,L,V,T. â¦\83G, L, â\93\91{a,I}V.Tâ¦\84 â\8a\83+ ⦃G, L.ⓑ{I}V, T⦄.
+lemma fqup_bind_dx: â\88\80a,I,G,L,V,T. â¦\83G, L, â\93\91{a,I}V.Tâ¦\84 â\8a\90+ ⦃G, L.ⓑ{I}V, T⦄.
 /2 width=1 by fqu_bind_dx, fqu_fqup/ qed.
 
-lemma fqup_flat_dx: â\88\80I,G,L,V,T. â¦\83G, L, â\93\95{I}V.Tâ¦\84 â\8a\83+ ⦃G, L, T⦄.
+lemma fqup_flat_dx: â\88\80I,G,L,V,T. â¦\83G, L, â\93\95{I}V.Tâ¦\84 â\8a\90+ ⦃G, L, T⦄.
 /2 width=1 by fqu_flat_dx, fqu_fqup/ qed.
 
-lemma fqup_flat_dx_pair_sn: â\88\80I1,I2,G,L,V1,V2,T. â¦\83G, L, â\93\95{I1}V1.â\91¡{I2}V2.Tâ¦\84 â\8a\83+ ⦃G, L, V2⦄.
+lemma fqup_flat_dx_pair_sn: â\88\80I1,I2,G,L,V1,V2,T. â¦\83G, L, â\93\95{I1}V1.â\91¡{I2}V2.Tâ¦\84 â\8a\90+ ⦃G, L, V2⦄.
 /2 width=5 by fqu_pair_sn, fqup_strap1/ qed.
 
-lemma fqup_bind_dx_flat_dx: â\88\80a,G,I1,I2,L,V1,V2,T. â¦\83G, L, â\93\91{a,I1}V1.â\93\95{I2}V2.Tâ¦\84 â\8a\83+ ⦃G, L.ⓑ{I1}V1, T⦄.
+lemma fqup_bind_dx_flat_dx: â\88\80a,G,I1,I2,L,V1,V2,T. â¦\83G, L, â\93\91{a,I1}V1.â\93\95{I2}V2.Tâ¦\84 â\8a\90+ ⦃G, L.ⓑ{I1}V1, T⦄.
 /2 width=5 by fqu_flat_dx, fqup_strap1/ qed.
 
-lemma fqup_flat_dx_bind_dx: â\88\80a,I1,I2,G,L,V1,V2,T. â¦\83G, L, â\93\95{I1}V1.â\93\91{a,I2}V2.Tâ¦\84 â\8a\83+ ⦃G, L.ⓑ{I2}V2, T⦄.
+lemma fqup_flat_dx_bind_dx: â\88\80a,I1,I2,G,L,V1,V2,T. â¦\83G, L, â\93\95{I1}V1.â\93\91{a,I2}V2.Tâ¦\84 â\8a\90+ ⦃G, L.ⓑ{I2}V2, T⦄.
 /2 width=5 by fqu_bind_dx, fqup_strap1/ qed.
 
 (* Basic eliminators ********************************************************)
 
 lemma fqup_ind: ∀G1,L1,T1. ∀R:relation3 ….
-                (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ → R G2 L2 T2) →
-                (â\88\80G,G2,L,L2,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83 ⦃G2, L2, T2⦄ → R G L T → R G2 L2 T2) →
-                â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → R G2 L2 T2.
+                (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ → R G2 L2 T2) →
+                (â\88\80G,G2,L,L2,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90 ⦃G2, L2, T2⦄ → R G L T → R G2 L2 T2) →
+                â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → R G2 L2 T2.
 #G1 #L1 #T1 #R #IH1 #IH2 #G2 #L2 #T2 #H
 @(tri_TC_ind … IH1 IH2 G2 L2 T2 H)
 qed-.
 
 lemma fqup_ind_dx: ∀G2,L2,T2. ∀R:relation3 ….
-                   (â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\83 ⦃G2, L2, T2⦄ → R G1 L1 T1) →
-                   (â\88\80G1,G,L1,L,T1,T. â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → R G L T → R G1 L1 T1) →
-                   â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → R G1 L1 T1.
+                   (â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\90 ⦃G2, L2, T2⦄ → R G1 L1 T1) →
+                   (â\88\80G1,G,L1,L,T1,T. â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → R G L T → R G1 L1 T1) →
+                   â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → R G1 L1 T1.
 #G2 #L2 #T2 #R #IH1 #IH2 #G1 #L1 #T1 #H
 @(tri_TC_ind_dx … IH1 IH2 G1 L1 T1 H)
 qed-.
@@ -87,7 +87,7 @@ qed-.
 (* Basic forward lemmas *****************************************************)
 
 lemma fqup_fwd_fw: ∀G1,G2,L1,L2,T1,T2.
-                   â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} < ♯{G1, L1, T1}.
+                   â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} < ♯{G1, L1, T1}.
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 /3 width=3 by fqu_fwd_fw, transitive_lt/
 qed-.
@@ -95,14 +95,14 @@ qed-.
 (* Advanced eliminators *****************************************************)
 
 lemma fqup_wf_ind: ∀R:relation3 …. (
-                      â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → R G2 L2 T2) →
+                      â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → R G2 L2 T2) →
                       R G1 L1 T1
                    ) → ∀G1,L1,T1. R G1 L1 T1.
 #R #HR @(f3_ind … fw) #n #IHn #G1 #L1 #T1 #H destruct /4 width=1 by fqup_fwd_fw/
 qed-.
 
 lemma fqup_wf_ind_eq: ∀R:relation3 …. (
-                         â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ → R G2 L2 T2) →
+                         â\88\80G1,L1,T1. (â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ → R G2 L2 T2) →
                          ∀G2,L2,T2. G1 = G2 → L1 = L2 → T1 = T2 → R G2 L2 T2
                       ) → ∀G1,L1,T1. R G1 L1 T1.
 #R #HR @(f3_ind … fw) #n #IHn #G1 #L1 #T1 #H destruct /4 width=7 by fqup_fwd_fw/
index c05bb114531e3e1dec56a3ebbb38eea74628e196..d7b8c866146d3c6d1a1995e5e1542b25e5f06cb0 100644 (file)
@@ -26,15 +26,15 @@ interpretation "star-iterated structural successor (closure)"
 (* Basic eliminators ********************************************************)
 
 lemma fqus_ind: ∀G1,L1,T1. ∀R:relation3 …. R G1 L1 T1 →
-                (â\88\80G,G2,L,L2,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ → R G L T → R G2 L2 T2) →
-                â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ → R G2 L2 T2.
+                (â\88\80G,G2,L,L2,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ → R G L T → R G2 L2 T2) →
+                â\88\80G2,L2,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ → R G2 L2 T2.
 #G1 #L1 #T1 #R #IH1 #IH2 #G2 #L2 #T2 #H
 @(tri_TC_star_ind … IH1 IH2 G2 L2 T2 H) //
 qed-.
 
 lemma fqus_ind_dx: ∀G2,L2,T2. ∀R:relation3 …. R G2 L2 T2 →
-                   (â\88\80G1,G,L1,L,T1,T. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄ → R G L T → R G1 L1 T1) →
-                   â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ → R G1 L1 T1.
+                   (â\88\80G1,G,L1,L,T1,T. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄ → R G L T → R G1 L1 T1) →
+                   â\88\80G1,L1,T1. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ → R G1 L1 T1.
 #G2 #L2 #T2 #R #IH1 #IH2 #G1 #L1 #T1 #H
 @(tri_TC_star_ind_dx … IH1 IH2 G1 L1 T1 H) //
 qed-.
@@ -44,40 +44,40 @@ qed-.
 lemma fqus_refl: tri_reflexive … fqus.
 /2 width=1 by tri_inj/ qed.
 
-lemma fquq_fqus: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄.
+lemma fquq_fqus: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄.
 /2 width=1 by tri_inj/ qed.
 
-lemma fqus_strap1: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83⸮ ⦃G2, L2, T2⦄ →
-                   â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄.
+lemma fqus_strap1: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90⸮ ⦃G2, L2, T2⦄ →
+                   â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄.
 /2 width=5 by tri_step/ qed-.
 
-lemma fqus_strap2: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83⸮ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
-                   â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄.
+lemma fqus_strap2: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90⸮ â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
+                   â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄.
 /2 width=5 by tri_TC_strap/ qed-.
 
-lemma fqus_ldrop: â\88\80G1,G2,K1,K2,T1,T2. â¦\83G1, K1, T1â¦\84 â\8a\83* ⦃G2, K2, T2⦄ →
+lemma fqus_ldrop: â\88\80G1,G2,K1,K2,T1,T2. â¦\83G1, K1, T1â¦\84 â\8a\90* ⦃G2, K2, T2⦄ →
                   ∀L1,U1,e. ⇩[e] L1 ≡ K1 → ⇧[0, e] T1 ≡ U1 →
-                  â¦\83G1, L1, U1â¦\84 â\8a\83* ⦃G2, K2, T2⦄.
+                  â¦\83G1, L1, U1â¦\84 â\8a\90* ⦃G2, K2, T2⦄.
 #G1 #G2 #K1 #K2 #T1 #T2 #H @(fqus_ind … H) -G2 -K2 -T2
 /3 width=5 by fqus_strap1, fquq_fqus, fquq_drop/
 qed-.
 
-lemma fqup_fqus: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄.
+lemma fqup_fqus: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind … H) -G2 -L2 -T2
 /3 width=5 by fqus_strap1, fquq_fqus, fqu_fquq/
 qed.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma fqus_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
+lemma fqus_fwd_fw: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -L2 -T2
 /3 width=3 by fquq_fwd_fw, transitive_le/
 qed-.
 
 (* Basic inversion lemmas ***************************************************)
 
-lemma fqup_inv_step_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
-                        â\88\83â\88\83G,L,T. â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G, L, Tâ¦\84 & â¦\83G, L, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄.
+lemma fqup_inv_step_sn: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
+                        â\88\83â\88\83G,L,T. â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G, L, Tâ¦\84 & â¦\83G, L, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄.
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqup_ind_dx … H) -G1 -L1 -T1 /2 width=5 by ex2_3_intro/
 #G1 #G #L1 #L #T1 #T #H1 #_ * /4 width=9 by fqus_strap2, fqu_fquq, ex2_3_intro/
 qed-.
index 2681a04acc346b22be68af233b67a179a811559f..2afb20c0250fd40ab2fbf41adafb7aeab0ed45c3 100644 (file)
@@ -19,8 +19,8 @@ include "basic_2/substitution/fqus.ma".
 
 (* Advanced inversion lemmas ************************************************)
 
-lemma fqus_inv_gen: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
-                    â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄ ∨ (∧∧ G1 = G2 & L1 = L2 & T1 = T2).
+lemma fqus_inv_gen: â\88\80G1,G2,L1,L2,T1,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
+                    â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄ ∨ (∧∧ G1 = G2 & L1 = L2 & T1 = T2).
 #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -G2 -L2 -T2 //
 #G #G2 #L #L2 #T #T2 #_ #H2 * elim (fquq_inv_gen … H2) -H2
 [ /3 width=5 by fqup_strap1, or_introl/
@@ -32,30 +32,30 @@ qed-.
 
 (* Advanced properties ******************************************************)
 
-lemma fqus_strap1_fqu: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83 ⦃G2, L2, T2⦄ →
-                       â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+lemma fqus_strap1_fqu: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90 ⦃G2, L2, T2⦄ →
+                       â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H2 elim (fqus_inv_gen … H1) -H1
 [ /2 width=5 by fqup_strap1/
 | * #HG #HL #HT destruct /2 width=1 by fqu_fqup/
 ]
 qed-.
 
-lemma fqus_strap2_fqu: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83* ⦃G2, L2, T2⦄ →
-                       â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+lemma fqus_strap2_fqu: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90 â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90* ⦃G2, L2, T2⦄ →
+                       â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H2 elim (fqus_inv_gen … H2) -H2
 [ /2 width=5 by fqup_strap2/
 | * #HG #HL #HT destruct /2 width=1 by fqu_fqup/
 ]
 qed-.
 
-lemma fqus_fqup_trans: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\83+ ⦃G2, L2, T2⦄ →
-                       â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+lemma fqus_fqup_trans: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90* â¦\83G, L, Tâ¦\84 â\86\92 â¦\83G, L, Tâ¦\84 â\8a\90+ ⦃G2, L2, T2⦄ →
+                       â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 #H2 @(fqup_ind … H2) -H2 -G2 -L2 -T2
 /2 width=5 by fqus_strap1_fqu, fqup_strap1/
 qed-.
 
-lemma fqup_fqus_trans: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G, L, T⦄ →
-                       â¦\83G, L, Tâ¦\84 â\8a\83* â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\83+ ⦃G2, L2, T2⦄.
+lemma fqup_fqus_trans: â\88\80G1,G,G2,L1,L,L2,T1,T,T2. â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G, L, T⦄ →
+                       â¦\83G, L, Tâ¦\84 â\8a\90* â¦\83G2, L2, T2â¦\84 â\86\92 â¦\83G1, L1, T1â¦\84 â\8a\90+ ⦃G2, L2, T2⦄.
 #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 @(fqup_ind_dx … H1) -H1 -G1 -L1 -T1
 /3 width=5 by fqus_strap2_fqu, fqup_strap2/
 qed-.
index 7d0f68927b446647b86fd51034ed7ea4181a997f..d8a174b825d23a44f9b642ed2d7ba1689bee29bf 100644 (file)
@@ -17,7 +17,7 @@ include "basic_2/relocation/llpx_sn.ma".
 
 (* LAZY EQUIVALENCE FOR LOCAL ENVIRONMENTS **********************************)
 
-definition ceq: relation3 lenv term term ≝ λL,T1,T2. T1 = T2.
+definition ceq: relation4 bind2 lenv term term ≝ λI,L,T1,T2. T1 = T2.
 
 definition lleq: relation4 ynat term lenv lenv ≝ llpx_sn ceq.
 
@@ -25,8 +25,8 @@ interpretation
    "lazy equivalence (local environment)"
    'LazyEq T d L1 L2 = (lleq d T L1 L2).
 
-definition lleq_transitive: predicate (relation3 lenv term term) ≝
-           λR. ∀L2,T1,T2. R L2 T1 T2 → ∀L1. L1 ⋕[T1, 0] L2 → R L1 T1 T2.
+definition lleq_transitive: predicate (relation4 bind2 lenv term term) ≝
+           λR. ∀I,L2,T1,T2. R I L2 T1 T2 → ∀L1. L1 ⋕[T1, 0] L2 → R I L1 T1 T2.
 
 (* Basic inversion lemmas ***************************************************)
 
@@ -155,6 +155,6 @@ lemma lleq_bind_O: ∀a,I,L1,L2,V,T. L1 ⋕[V, 0] L2 → L1.ⓑ{I}V ⋕[T, 0] L2
 
 (* Advancded properties on lazy pointwise exyensions ************************)
 
-lemma llpx_sn_lrefl: ∀R. (∀L. reflexive … (R L)) →
+lemma llpx_sn_lrefl: ∀R. (∀I,L. reflexive … (R I L)) →
                      ∀L1,L2,T,d. L1 ⋕[T, d] L2 → llpx_sn R d T L1 L2.
 /2 width=3 by llpx_sn_co/ qed-.
index b02d065daccecdfaa210640766f8064e618381aa..3a510eb28c9445822d375bcee3479f4355db4b51 100644 (file)
@@ -19,9 +19,9 @@ include "basic_2/substitution/lleq_ldrop.ma".
 
 (* Properties on supclosure *************************************************)
 
-lemma lleq_fqu_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\83 ⦃G2, K2, U⦄ →
+lemma lleq_fqu_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\90 ⦃G2, K2, U⦄ →
                       ∀L1. L1 ⋕[T, 0] L2 →
-                      â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\83 ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
+                      â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\90 ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
 #G1 #G2 #L2 #K2 #T #U #H elim H -G1 -G2 -L2 -K2 -T -U
 [ #I #G #L2 #V #L1 #H elim (lleq_inv_lref_ge_dx … H … I L2 V) -H //
   #K1 #H1 #H2 lapply (ldrop_inv_O2 … H1) -H1
@@ -44,18 +44,18 @@ lemma lleq_fqu_trans: ∀G1,G2,L2,K2,T,U. ⦃G1, L2, T⦄ ⊃ ⦃G2, K2, U⦄ 
 ]
 qed-.
 
-lemma lleq_fquq_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\83⸮ ⦃G2, K2, U⦄ →
+lemma lleq_fquq_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\90⸮ ⦃G2, K2, U⦄ →
                        ∀L1. L1 ⋕[T, 0] L2 →
-                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\83⸮ ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
+                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\90⸮ ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
 #G1 #G2 #L2 #K2 #T #U #H #L1 #HL12 elim(fquq_inv_gen … H) -H
 [ #H elim (lleq_fqu_trans … H … HL12) -L2 /3 width=3 by fqu_fquq, ex2_intro/
 | * #HG #HL #HT destruct /2 width=3 by ex2_intro/
 ]
 qed-.
 
-lemma lleq_fqup_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\83+ ⦃G2, K2, U⦄ →
+lemma lleq_fqup_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\90+ ⦃G2, K2, U⦄ →
                        ∀L1. L1 ⋕[T, 0] L2 →
-                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\83+ ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
+                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\90+ ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
 #G1 #G2 #L2 #K2 #T #U #H @(fqup_ind … H) -G2 -K2 -U
 [ #G2 #K2 #U #HTU #L1 #HL12 elim (lleq_fqu_trans … HTU … HL12) -L2
   /3 width=3 by fqu_fqup, ex2_intro/
@@ -65,9 +65,9 @@ lemma lleq_fqup_trans: ∀G1,G2,L2,K2,T,U. ⦃G1, L2, T⦄ ⊃+ ⦃G2, K2, U⦄
 ]
 qed-.
 
-lemma lleq_fqus_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\83* ⦃G2, K2, U⦄ →
+lemma lleq_fqus_trans: â\88\80G1,G2,L2,K2,T,U. â¦\83G1, L2, Tâ¦\84 â\8a\90* ⦃G2, K2, U⦄ →
                        ∀L1. L1 ⋕[T, 0] L2 →
-                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\83* ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
+                       â\88\83â\88\83K1. â¦\83G1, L1, Tâ¦\84 â\8a\90* ⦃G2, K1, U⦄ & K1 ⋕[U, 0] K2.
 #G1 #G2 #L2 #K2 #T #U #H #L1 #HL12 elim(fqus_inv_gen … H) -H
 [ #H elim (lleq_fqup_trans … H … HL12) -L2 /3 width=3 by fqup_fqus, ex2_intro/
 | * #HG #HL #HT destruct /2 width=3 by ex2_intro/
index 0908b1e0a017d4454141a7d79712ed6017732a67..02b1b78acc115753c2b5dc17d054d6f039f24ef1 100644 (file)
@@ -36,7 +36,7 @@
         for context-sensitive extended computation.
    </news>
    <news date="2014 April 16.">
-         lazy equivalence for local environments
+         lazy equivalence on local environments
         serves as irrelevant step in "big tree" computation
          (anniversary milestone).
    </news>
index b4ee8c1faf9516c010b660e8283a7c066a4b0ca9..1c427b89f0f6df974213de5131ffaa73fea3cc99 100644 (file)
@@ -31,7 +31,7 @@ table {
    [ { "dynamic typing" * } {
 (*
         [ { "local env. ref. for native type assignment" * } {
-             [ "lsubn ( ? â\8a¢ ? :â\8a\91 ? )" "lsubn_ldrop" "lsubn_cpcs" "lsubn_nta" * ]
+             [ "lsubn ( ? â\8a¢ ? :â«\83 ? )" "lsubn_ldrop" "lsubn_cpcs" "lsubn_nta" * ]
           }
         ]
         [ { "native type assignment" * } {
@@ -40,7 +40,7 @@ table {
         ]
 *)
         [ { "local env. ref. for stratified native validity" * } {
-             [ "lsubsv ( ? â\8a¢ ? Â¡â\8a\91[?,?] ? )" "lsubsv_ldrop" + "lsubsv_lsubd" + "lsubsv_lsuba" + "lsubsv_lsstas" + "lsubsv_cpds" + "lsubsv_cpcs" + "lsubsv_snv" * ]
+             [ "lsubsv ( ? â\8a¢ ? Â¡â«\83[?,?] ? )" "lsubsv_ldrop" + "lsubsv_lsubd" + "lsubsv_lsuba" + "lsubsv_lsstas" + "lsubsv_cpds" + "lsubsv_cpcs" + "lsubsv_snv" * ]
           }
         ]
         [ { "stratified native validity" * } {
@@ -102,17 +102,17 @@ table {
           }
         ]
         [ { "context-sensitive extended computation" * } {
-             [ "lpxs ( ⦃?,?⦄ ⊢ ➡*[?,?] ? )" "lpxs_alt ( ⦃?,?⦄ ⊢ ➡➡*[?,?] ? )" "lpxs_ldrop" + "lpxs_lleq" + "lpxs_aaa" + "lpxs_cpxs" + "lpxs_lpxs" * ]
+             [ "lpxs ( ⦃?,?⦄ ⊢ ➡*[?,?] ? )" "lpxs_ldrop" + "lpxs_lleq" + "lpxs_aaa" + "lpxs_cpxs" + "lpxs_lpxs" * ]
              [ "cpxs ( ⦃?,?⦄ ⊢ ? ➡*[?,?] ? )" "cpxs_tstc" + "cpxs_tstc_vector" + "cpxs_leq" + "cpxs_lift" + "cpxs_lleq" + "cpxs_aaa" + "cpxs_cpxs" * ]
           }
         ]
         [ { "context-sensitive computation" * } {
-             [ "lprs ( ⦃?,?⦄ ⊢ ➡* ? )" "lprs_alt ( ⦃?,?⦄ ⊢ ➡➡* ? )" "lprs_ldrop" + "lprs_cprs" + "lprs_lprs" * ]
+             [ "lprs ( ⦃?,?⦄ ⊢ ➡* ? )" "lprs_ldrop" + "lprs_cprs" + "lprs_lprs" * ]
              [ "cprs ( ⦃?,?⦄ ⊢ ? ➡* ?)" "cprs_lift" + "cprs_cprs" * ]
           }
         ]
         [ { "local env. ref. for abstract candidates of reducibility" * } {
-             [ "lsubc ( ? â\8a¢ ? â\8a\91[?] ? )" "lsubc_ldrop" + "lsubc_ldrops" + "lsubc_lsuba" * ]
+             [ "lsubc ( ? â\8a¢ ? â«\83[?] ? )" "lsubc_ldrop" + "lsubc_ldrops" + "lsubc_lsuba" * ]
           }
         ]
         [ { "support for abstract computation properties" * } {
@@ -178,7 +178,7 @@ table {
    class "grass"
    [ { "static typing" * } {
         [ { "local env. ref. for atomic arity assignment" * } {
-             [ "lsuba ( ? â\8a¢ ? â\81\9dâ\8a\91 ? )" "lsuba_ldrop" + "lsuba_aaa" + "lsuba_lsuba" * ]
+             [ "lsuba ( ? â\8a¢ ? â\81\9dâ«\83 ? )" "lsuba_ldrop" + "lsuba_aaa" + "lsuba_lsuba" * ]
           }
         ]
         [ { "atomic arity assignment" * } {
@@ -190,7 +190,7 @@ table {
           }
         ]
         [ { "local env. ref. for degree assignment" * } {
-             [ "lsubd ( ? â\8a¢ ? â\96ªâ\8a\91 ? )" "lsubd_da" + "lsubd_lsubd" * ]
+             [ "lsubd ( ? â\8a¢ ? â\96ªâ«\83 ? )" "lsubd_da" + "lsubd_lsubd" * ]
           }
         ]
         [ { "degree assignment" * } {
@@ -202,7 +202,7 @@ table {
           }
         ]
         [ { "restricted local env. ref." * } {
-             [ "lsubr ( ? â\8a\91 ? )" "lsubr_lsubr" * ]
+             [ "lsubr ( ? â«\83 ? )" "lsubr_lsubr" * ]
           }
         ]
      }
@@ -215,8 +215,8 @@ table {
           }
         ]
         [ { "iterated structural successor for closures" * } {
-             [ "fqus ( â¦\83?,?,?â¦\84 â\8a\83* ⦃?,?,?⦄ )" "fqus_alt" + "fqus_fqus" * ]
-             [ "fqup ( â¦\83?,?,?â¦\84 â\8a\83+ ⦃?,?,?⦄ )" "fqup_fqup" * ]
+             [ "fqus ( â¦\83?,?,?â¦\84 â\8a\90* ⦃?,?,?⦄ )" "fqus_alt" + "fqus_fqus" * ]
+             [ "fqup ( â¦\83?,?,?â¦\84 â\8a\90+ ⦃?,?,?⦄ )" "fqup_fqup" * ]
           }
         ]
         [ { "iterated local env. slicing" * } {
@@ -237,8 +237,8 @@ table {
    class "orange"
    [ { "relocation" * } {
         [ { "structural successor for closures" * } {
-             [ "fquq ( â¦\83?,?,?â¦\84 â\8a\83⸮ â¦\83?,?,?â¦\84 )" "fquq_alt ( â¦\83?,?,?â¦\84 â\8a\83â\8a\83⸮ ⦃?,?,?⦄ )" * ]
-             [ "fqu ( â¦\83?,?,?â¦\84 â\8a\83 ⦃?,?,?⦄ )" * ]
+             [ "fquq ( â¦\83?,?,?â¦\84 â\8a\90⸮ â¦\83?,?,?â¦\84 )" "fquq_alt ( â¦\83?,?,?â¦\84 â\8a\90â\8a\90⸮ ⦃?,?,?⦄ )" * ]
+             [ "fqu ( â¦\83?,?,?â¦\84 â\8a\90 ⦃?,?,?⦄ )" * ]
           }
         ]
         [ { "global env. slicing" * } {