]> matita.cs.unibo.it Git - helm.git/commitdiff
- notation restyling ...
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 8 Jan 2012 15:01:27 +0000 (15:01 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 8 Jan 2012 15:01:27 +0000 (15:01 +0000)
49 files changed:
matita/matita/contribs/lambda_delta/Basic_2/computation/acp.ma
matita/matita/contribs/lambda_delta/Basic_2/computation/acp_aaa.ma
matita/matita/contribs/lambda_delta/Basic_2/computation/acp_cr.ma
matita/matita/contribs/lambda_delta/Basic_2/computation/csn_aaa.ma
matita/matita/contribs/lambda_delta/Basic_2/computation/csn_cr.ma
matita/matita/contribs/lambda_delta/Basic_2/functional/lift.ma
matita/matita/contribs/lambda_delta/Basic_2/functional/rtm_step.ma
matita/matita/contribs/lambda_delta/Basic_2/functional/subst.ma
matita/matita/contribs/lambda_delta/Basic_2/notation.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/cpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/cpr_cpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/cpr_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/cpr_ltpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/lcpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/ltpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/ltpr_ldrop.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/tnf.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/tpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/tpr_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/tpr_tpr.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/tpr_tpss.ma
matita/matita/contribs/lambda_delta/Basic_2/reducibility/twhnf.ma
matita/matita/contribs/lambda_delta/Basic_2/static/aaa.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/gdrop.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/gdrop_gdrop.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/ldrop.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/ldrop_ldrop.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/lift.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/lift_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/lift_vector.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/ltps.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/ltps_ldrop.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/ltps_tps.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/tps.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/tps_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/substitution/tps_tps.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/delift.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/delift_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/ldrops.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/lifts.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/lifts_vector.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss_ldrop.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss_ltpss.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss_tpss.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_lift.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_ltps.ma
matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_tpss.ma

index 9cd2a3fa68bbb04d6904e17998fbb762727f4601..3e13d9ac3bcc36145c7292a5489d02e53b7f926d 100644 (file)
@@ -20,18 +20,18 @@ definition CP1 ≝ λRR:lenv→relation term. λRS:relation term.
                  ∀L,k. NF … (RR L) RS (⋆k).
 
 definition CP2 ≝ λRR:lenv→relation term. λRS:relation term.
-                 â\88\80L,K,W,i. â\87\93[0,i] L ≡ K. 𝕓{Abst} W → NF … (RR L) RS (#i).
+                 â\88\80L,K,W,i. â\87©[0,i] L ≡ K. 𝕓{Abst} W → NF … (RR L) RS (#i).
 
 definition CP3 ≝ λRR:lenv→relation term. λRP:lenv→predicate term.
                  ∀L,V,k. RP L (𝕔{Appl}⋆k.V) → RP L V.
 
 definition CP4 ≝ λRR:lenv→relation term. λRS:relation term.
                  ∀L0,L,T,T0,d,e. NF … (RR L) RS T → 
-                 â\87\93[d,e] L0 â\89¡ L â\86\92 â\87\91[d, e] T ≡ T0 → NF … (RR L0) RS T0.
+                 â\87©[d,e] L0 â\89¡ L â\86\92 â\87§[d, e] T ≡ T0 → NF … (RR L0) RS T0.
 
 definition CP4s ≝ λRR:lenv→relation term. λRS:relation term.
-                  â\88\80L0,L,des. â\87\93[des] L0 ≡ L →
-                  â\88\80T,T0. â\87\91[des] T ≡ T0 →
+                  â\88\80L0,L,des. â\87©*[des] L0 ≡ L →
+                  â\88\80T,T0. â\87§*[des] T ≡ T0 →
                   NF … (RR L) RS T → NF … (RR L0) RS T0.
 
 (* requirements for abstract computation properties *)
index a47d224d3c0369107afada337c9fa547cc702c4d..03526d8f18194c0df3b4d7ddfa89f5eb62a02b90 100644 (file)
 include "Basic_2/static/aaa.ma".
 include "Basic_2/computation/lsubc.ma".
 (*
-axiom lsubc_ldrops_trans: â\88\80RP,L1,L2. L1 [RP] â\8a\91 L2 â\86\92 â\88\80K2,des. â\87\93[des] L2 ≡ K2 →
-                          â\88\83â\88\83K1. â\87\93[des] L1 ≡ K1 & K1 [RP] ⊑ K2.
+axiom lsubc_ldrops_trans: â\88\80RP,L1,L2. L1 [RP] â\8a\91 L2 â\86\92 â\88\80K2,des. â\87©[des] L2 ≡ K2 →
+                          â\88\83â\88\83K1. â\87©[des] L1 ≡ K1 & K1 [RP] ⊑ K2.
 *)
-axiom ldrops_lsubc_trans: â\88\80RP,L1,K1,des. â\87\93[des] L1 ≡ K1 → ∀K2. K1 [RP] ⊑ K2 →
-                          â\88\83â\88\83L2. L1 [RP] â\8a\91 L2 & â\87\93[des] L2 ≡ K2.
+axiom ldrops_lsubc_trans: â\88\80RP,L1,K1,des. â\87©*[des] L1 ≡ K1 → ∀K2. K1 [RP] ⊑ K2 →
+                          â\88\83â\88\83L2. L1 [RP] â\8a\91 L2 & â\87©*[des] L2 ≡ K2.
 
-axiom lifts_trans: â\88\80T1,T,des1. â\87\91[des1] T1 â\89¡ T â\86\92 â\88\80T2:term. â\88\80des2. â\87\91[des2] T ≡ T2 →
-                   â\87\91[des1 @ des2] T1 ≡ T2.
+axiom lifts_trans: â\88\80T1,T,des1. â\87§*[des1] T1 â\89¡ T â\86\92 â\88\80T2:term. â\88\80des2. â\87§*[des2] T ≡ T2 →
+                   â\87§*[des1 @ des2] T1 ≡ T2.
 
-axiom ldrops_trans: â\88\80L1,L,des1. â\87\93[des1] L1 â\89¡ L â\86\92 â\88\80L2,des2. â\87\93[des2] L ≡ L2 →
-                    â\87\93[des2 @ des1] L1 ≡ L2.
+axiom ldrops_trans: â\88\80L1,L,des1. â\87©*[des1] L1 â\89¡ L â\86\92 â\88\80L2,des2. â\87©*[des2] L ≡ L2 →
+                    â\87©*[des2 @ des1] L1 ≡ L2.
 
 (* ABSTRACT COMPUTATION PROPERTIES ******************************************)
 
@@ -33,8 +33,8 @@ axiom ldrops_trans: ∀L1,L,des1. ⇓[des1] L1 ≡ L → ∀L2,des2. ⇓[des2] L
 
 axiom aacr_aaa_csubc_lifts: ∀RR,RS,RP. 
                               acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
-                              â\88\80L1,T,A. L1 â\8a¢ T Ã· A â\86\92 â\88\80L0,des. â\87\93[des] L0 ≡ L1 →
-                              â\88\80T0. â\87\91[des] T ≡ T0 → ∀L2. L2 [RP] ⊑ L0 →
+                              â\88\80L1,T,A. L1 â\8a¢ T Ã· A â\86\92 â\88\80L0,des. â\87©*[des] L0 ≡ L1 →
+                              â\88\80T0. â\87§*[des] T ≡ T0 → ∀L2. L2 [RP] ⊑ L0 →
                               ⦃L2, T0⦄ [RP] ϵ 〚A〛.
 (*
 #RR #RS #RP #H1RP #H2RP #L1 #T #A #H elim H -L1 -T -A
index f954ca15b7da21885c0c66a8f3047cd2b320d08f..fc0b87b17e25cc174c886bbfa1ea249a468cf5e7 100644 (file)
@@ -32,18 +32,18 @@ definition S3 ≝ λRP,C:lenv→predicate term.
                 ∀L,Vs,V,T,W. C L (ⒶVs. 𝕔{Abbr}V. T) → RP L W → C L (ⒶVs. 𝕔{Appl}V. 𝕔{Abst}W. T).
 
 definition S5 ≝ λRP,C:lenv→predicate term.
-                â\88\80L,V1s,V2s. â\87\91[0, 1] V1s ≡ V2s →
+                â\88\80L,V1s,V2s. â\87§[0, 1] V1s ≡ V2s →
                 ∀V,T. C (L. 𝕓{Abbr}V) (ⒶV2s. T) → RP L V → C L (ⒶV1s. 𝕔{Abbr}V. T).
 
 definition S6 ≝ λRP,C:lenv→predicate term.
                 ∀L,Vs,T,W. C L (ⒶVs. T) → RP L W → C L (ⒶVs. 𝕔{Cast}W. T).
 
 definition S7 ≝ λC:lenv→predicate term. ∀L1,L2,T1,T2,d,e.
-                C L1 T1 â\86\92 â\87\93[d, e] L2 â\89¡ L1 â\86\92 â\87\91[d, e] T1 ≡ T2 → C L2 T2.
+                C L1 T1 â\86\92 â\87©[d, e] L2 â\89¡ L1 â\86\92 â\87§[d, e] T1 ≡ T2 → C L2 T2.
 
 definition S7s ≝ λC:lenv→predicate term.
-                 â\88\80L1,L2,des. â\87\93[des] L2 ≡ L1 →
-                 â\88\80T1,T2. â\87\91[des] T1 ≡ T2 → C L1 T1 → C L2 T2.
+                 â\88\80L1,L2,des. â\87©*[des] L2 ≡ L1 →
+                 â\88\80T1,T2. â\87§*[des] T1 ≡ T2 → C L1 T1 → C L2 T2.
 
 (* properties of the abstract candidate of reducibility *)
 record acr (RR:lenv->relation term) (RS:relation term) (RP,C:lenv→predicate term) : Prop ≝
@@ -59,7 +59,7 @@ record acr (RR:lenv->relation term) (RS:relation term) (RP,C:lenv→predicate te
 let rec aacr (RP:lenv→predicate term) (A:aarity) (L:lenv) on A: predicate term ≝
 λT. match A with
 [ AAtom     ⇒ RP L T
-| APair B A â\87\92 â\88\80L0,V0,T0,des. aacr RP B L0 V0 â\86\92 â\87\93[des] L0 â\89¡ L â\86\92 â\87\91[des] T ≡ T0 →
+| APair B A â\87\92 â\88\80L0,V0,T0,des. aacr RP B L0 V0 â\86\92 â\87©*[des] L0 â\89¡ L â\86\92 â\87§*[des] T ≡ T0 →
               aacr RP A L0 (𝕔{Appl} V0. T0)
 ].
 
@@ -79,7 +79,7 @@ lemma acr_lifts: ∀C. S7 C → S7s C.
 qed.
 
 lemma rp_lifts: ∀RR,RS,RP. acr RR RS RP (λL,T. RP L T) →
-                â\88\80des,L0,L,V,V0. â\87\93[des] L0 â\89¡ L â\86\92 â\87\91[des] V ≡ V0 →
+                â\88\80des,L0,L,V,V0. â\87©*[des] L0 â\89¡ L â\86\92 â\87§*[des] V ≡ V0 →
                 RP L V → RP L0 V0.
 #RR #RS #RP #HRP #des #L0 #L #V #V0 #HL0 #HV0 #HV 
 @acr_lifts /width=6/
@@ -87,7 +87,7 @@ lemma rp_lifts: ∀RR,RS,RP. acr RR RS RP (λL,T. RP L T) →
 qed.
 
 lemma rp_liftsv_all: ∀RR,RS,RP. acr RR RS RP (λL,T. RP L T) →
-                     â\88\80des,L0,L,Vs,V0s. â\87\91[des] Vs â\89¡ V0s â\86\92  â\87\93[des] L0 ≡ L →
+                     â\88\80des,L0,L,Vs,V0s. â\87§*[des] Vs â\89¡ V0s â\86\92  â\87©*[des] L0 ≡ L →
                      all … (RP L) Vs → all … (RP L0) V0s.
 #RR #RS #RP #HRP #des #L0 #L #Vs #V0s #H elim H -Vs -V0s normalize //
 #T1s #T2s #T1 #T2 #HT12 #_ #IHT2s #HL0 * #HT1 #HT1s
@@ -134,7 +134,7 @@ qed.
 *)
 lemma aacr_abst: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
                  ∀L,W,T,A,B. RP L W → (
-                    â\88\80L0,V0,T0,des. â\87\93[des] L0 â\89¡ L â\86\92 â\87\91[ss des] T ≡ T0 →
+                    â\88\80L0,V0,T0,des. â\87©*[des] L0 â\89¡ L â\86\92 â\87§*[ss des] T ≡ T0 →
                                    ⦃L0, V0⦄ [RP] ϵ 〚B〛→ ⦃L0. 𝕓{Abbr} V0, T0⦄ [RP] ϵ 〚A〛
                  ) →
                  ⦃L, 𝕓{Abst} W. T⦄ [RP] ϵ 〚𝕔 B. A〛.
index 097b045dc6395a637bd31c3383714292122ea7ae..8bc613aa4a34903d4a29e7a8c120e19688fc1c84 100644 (file)
@@ -19,7 +19,7 @@ include "Basic_2/computation/csn_cr.ma".
 
 (* Main properties **********************************************************)
 
-theorem csn_aaa: â\88\80L,T,A. L â\8a¢ T Ã· A â\86\92 L â\8a¢ â\87\93 T.
+theorem csn_aaa: â\88\80L,T,A. L â\8a¢ T Ã· A â\86\92 L â\8a¢ â¬\87* T.
 #L #T #A #H
 @(acp_aaa … csn_acp csn_acr … H)
 qed. 
index 5dadd06deed5da57084a7397f05ae6afc443bfaf..98a8db1deabd125f4b6849cc63d619c1fb623735 100644 (file)
@@ -19,4 +19,4 @@ include "Basic_2/computation/csn.ma".
 
 (* Advanced properties ******************************************************)
 
-axiom csn_acr: acr cpr (eq â\80¦) (csn â\80¦) (λL,T. L â\8a¢ â\87\93 T).
+axiom csn_acr: acr cpr (eq â\80¦) (csn â\80¦) (λL,T. L â\8a¢ â¬\87* T).
index c94f11c8b1aa72efc9ab68db440cfb2890f77b0c..90e41e9a58d2c49a4cca3e8b908760f6fe762c34 100644 (file)
@@ -33,7 +33,7 @@ interpretation "functional relocation" 'Lift d e T = (flift d e T).
 
 (* Main properties **********************************************************)
 
-theorem flift_lift: â\88\80T,d,e. â\87\91[d, e] T ≡ ↑[d, e] T.
+theorem flift_lift: â\88\80T,d,e. â\87§[d, e] T ≡ ↑[d, e] T.
 #T elim T -T
 [ * #i #d #e //
   elim (lt_or_eq_or_gt i d) #Hid normalize 
@@ -47,7 +47,7 @@ qed.
 
 (* Main inversion properties ************************************************)
 
-theorem flift_inv_lift: â\88\80d,e,T1,T2. â\87\91[d, e] T1 ≡ T2 → ↑[d, e] T1 = T2.
+theorem flift_inv_lift: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → ↑[d, e] T1 = T2.
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 normalize //
 [ #i #d #e #Hid >(tri_lt ?????? Hid) //
 | #i #d #e #Hid
@@ -60,7 +60,7 @@ qed-.
 
 (* Derived properties *******************************************************)
 
-lemma flift_join: â\88\80e1,e2,T. â\87\91[e1, e2] ↑[0, e1] T ≡ ↑[0, e1 + e2] T.
+lemma flift_join: â\88\80e1,e2,T. â\87§[e1, e2] ↑[0, e1] T ≡ ↑[0, e1 + e2] T.
 #e1 #e2 #T
 lapply (flift_lift T 0 (e1+e2)) #H
 elim (lift_split … H e1 e1 ? ? ?) -H // #U #H
index 470288882acf05d47dba42a86dcc0c620b95caa8..e1fabb8faa46d1d33fb904a4174d3e87418acaec 100644 (file)
@@ -52,3 +52,6 @@ inductive rtm_step: relation rtm ≝
               rtm_step (mk_rtm G u E S (𝕔{Abbr} V. T))
                        (mk_rtm G u (E. ④{Abbr} {u, E, V}) S T)
 .
+
+interpretation "sequential reduction (RTM)"
+   'SRed O1 O2 = (rtm_step O1 O2).
index 46d3117408a7f0b20832aba26b218df92a34b63b..d415c19d6e6c068deddabaefc8b97bd0b9980322 100644 (file)
@@ -34,7 +34,7 @@ interpretation "functional core substitution" 'Subst V d T = (fsubst V d T).
 (* Main properties **********************************************************)
 
 theorem fsubst_delift: ∀K,V,T,L,d.
-                       â\87\93[0, d] L ≡ K. 𝕓{Abbr} V → L ⊢ T [d, 1] ≡ [d ← V] T.
+                       â\87©[0, d] L ≡ K. 𝕓{Abbr} V → L ⊢ T [d, 1] ≡ [d ← V] T.
 #K #V #T elim T -T
 [ * #i #L #d #HLK normalize in ⊢ (? ? ? ? ? %); /2 width=3/
   elim (lt_or_eq_or_gt i d) #Hid
@@ -48,7 +48,7 @@ qed.
 
 (* Main inversion properties ************************************************)
 
-theorem fsubst_inv_delift: â\88\80K,V,T1,L,T2,d. â\87\93[0, d] L ≡ K. 𝕓{Abbr} V →
+theorem fsubst_inv_delift: â\88\80K,V,T1,L,T2,d. â\87©[0, d] L ≡ K. 𝕓{Abbr} V →
                            L ⊢ T1 [d, 1] ≡ T2 → [d ← V] T1 = T2.
 #K #V #T1 elim T1 -T1
 [ * #i #L #T2 #d #HLK #H
index f528a9062236fe15d6a46490aaf4bb4847974575..a801fae2177ef3242bfb2597eb250fab1b8e5003 100644 (file)
@@ -90,37 +90,41 @@ notation "hvbox( T1 break [ d , break e ] ≼ break T2 )"
 
 (* Substitution *************************************************************)
 
-notation "hvbox( â\87\91 [ d , break e ] break T1 ≡ break T2 )"
+notation "hvbox( â\87§ [ d , break e ] break T1 ≡ break T2 )"
    non associative with precedence 45
    for @{ 'RLift $d $e $T1 $T2 }.
 
-notation "hvbox( â\87\93 [ d , break e ] break L1 ≡ break L2 )"
+notation "hvbox( â\87© [ e ] break L1 ≡ break L2 )"
    non associative with precedence 45
-   for @{ 'RLDrop $d $e $L1 $L2 }.
+   for @{ 'RDrop $e $L1 $L2 }.
 
-notation "hvbox( T1 break [ d , break e ] ≫ break T2 )"
+notation "hvbox( ⇩ [ d , break e ] break L1 ≡ break L2 )"
+   non associative with precedence 45
+   for @{ 'RDrop $d $e $L1 $L2 }.
+
+notation "hvbox( T1 break [ d , break e ] ▶ break T2 )"
    non associative with precedence 45
    for @{ 'PSubst $T1 $d $e $T2 }.
 
-notation "hvbox( L â\8a¢ break term 90 T1 break [ d , break e ] â\89« break T2 )"
+notation "hvbox( L â\8a¢ break term 90 T1 break [ d , break e ] â\96 break T2 )"
    non associative with precedence 45
    for @{ 'PSubst $L $T1 $d $e $T2 }.
 
 (* Unfold *******************************************************************)
 
-notation "hvbox( â\87\91 [ e ] break T1 ≡ break T2 )"
+notation "hvbox( â\87§ * [ e ] break T1 ≡ break T2 )"
    non associative with precedence 45
-   for @{ 'RLift $e $T1 $T2 }.
+   for @{ 'RLiftStar $e $T1 $T2 }.
 
-notation "hvbox( â\87\93 [ e ] break L1 ≡ break L2 )"
+notation "hvbox( â\87© * [ e ] break L1 ≡ break L2 )"
    non associative with precedence 45
-   for @{ 'RLDrop $e $L1 $L2 }.
+   for @{ 'RDropStar $e $L1 $L2 }.
 
-notation "hvbox( T1 break [ d , break e ] â\89«* break T2 )"
+notation "hvbox( T1 break [ d , break e ] â\96* break T2 )"
    non associative with precedence 45
    for @{ 'PSubstStar $T1 $d $e $T2 }.
 
-notation "hvbox( L â\8a¢ break term 90 T1 break [ d , break e ] â\89«* break T2 )"
+notation "hvbox( L â\8a¢ break term 90 T1 break [ d , break e ] â\96* break T2 )"
    non associative with precedence 45
    for @{ 'PSubstStar $L $T1 $d $e $T2 }.
 
@@ -188,37 +192,37 @@ notation "hvbox( L ⊢ 𝕎ℍℕ [ T ] )"
    non associative with precedence 45
    for @{ 'WHdNormal $L $T }.
 
-notation "hvbox( T1 â\87\92 break T2 )"
+notation "hvbox( T1 â\9e¡ break T2 )"
    non associative with precedence 45
    for @{ 'PRed $T1 $T2 }.
 
-notation "hvbox( L â\8a¢ break term 90 T1 â\87\92 break T2 )"
+notation "hvbox( L â\8a¢ break term 90 T1 â\9e¡ break T2 )"
    non associative with precedence 45
    for @{ 'PRed $L $T1 $T2 }.
 
-notation "hvbox( L1 â\8a¢ â\87\92 break L2 )"
+notation "hvbox( L1 â\8a¢ â\9e¡ break L2 )"
    non associative with precedence 45
    for @{ 'CPRed $L1 $L2 }.
 
 (* Computation **************************************************************)
 
-notation "hvbox( T1 â\87\92* break T2 )"
+notation "hvbox( T1 â\9e¡* break T2 )"
    non associative with precedence 45
    for @{ 'PRedStar $T1 $T2 }.
 
-notation "hvbox( L â\8a¢ break term 90 T1 â\87\92* break T2 )"
+notation "hvbox( L â\8a¢ break term 90 T1 â\9e¡* break T2 )"
    non associative with precedence 45
    for @{ 'PRedStar $L $T1 $T2 }.
 
-notation "hvbox( L1 â\8a¢ â\87\92* break L2 )"
+notation "hvbox( L1 â\8a¢ â\9e¡* break L2 )"
    non associative with precedence 45
    for @{ 'CPRedStar $L1 $L2 }.
 
-notation "hvbox( â\87\93 T  )"
+notation "hvbox( â¬\87 * T  )"
    non associative with precedence 45
    for @{ 'SN $T }.
 
-notation "hvbox( L â\8a¢ â\87\93 T )"
+notation "hvbox( L â\8a¢ â¬\87 * T )"
    non associative with precedence 45
    for @{ 'SN $L $T }.
 
@@ -240,3 +244,6 @@ notation "hvbox( [ d ← break V ] break T )"
    non associative with precedence 55
    for @{ 'Subst $V $d $T }.
 
+notation "hvbox( T1 ⇨ break T2 )"
+   non associative with precedence 45
+   for @{ 'SRed $T1 $T2 }.
index 3b05c3ea67fc63945a79c43fadb64a421065c9f6..bcc50fa6e8f6c68e464b831a7f39a5f51250e2c2 100644 (file)
@@ -20,7 +20,7 @@ include "Basic_2/reducibility/tpr.ma".
 
 (* Basic_1: includes: pr2_delta1 *)
 definition cpr: lenv → relation term ≝
-   Î»L,T1,T2. â\88\83â\88\83T. T1 â\87\92 T & L â\8a¢ T [0, |L|] â\89«* T2.
+   Î»L,T1,T2. â\88\83â\88\83T. T1 â\9e¡ T & L â\8a¢ T [0, |L|] â\96* T2.
 
 interpretation
    "context-sensitive parallel reduction (term)"
@@ -29,31 +29,31 @@ interpretation
 (* Basic properties *********************************************************)
 
 (* Basic_1: was by definition: pr2_free *)
-lemma cpr_pr: â\88\80T1,T2. T1 â\87\92 T2 â\86\92 â\88\80L. L â\8a¢ T1 â\87\92 T2.
+lemma cpr_pr: â\88\80T1,T2. T1 â\9e¡ T2 â\86\92 â\88\80L. L â\8a¢ T1 â\9e¡ T2.
 /2 width=3/ qed.
 
-lemma cpr_tpss: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89«* T2 â\86\92 L â\8a¢ T1 â\87\92 T2.
+lemma cpr_tpss: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96¶* T2 â\86\92 L â\8a¢ T1 â\9e¡ T2.
 /3 width=5/ qed.
 
-lemma cpr_refl: â\88\80L,T. L â\8a¢ T â\87\92 T.
+lemma cpr_refl: â\88\80L,T. L â\8a¢ T â\9e¡ T.
 /2 width=1/ qed.
 
 (* Note: new property *)
 (* Basic_1: was only: pr2_thin_dx *) 
 lemma cpr_flat: ∀I,L,V1,V2,T1,T2.
-                L â\8a¢ V1 â\87\92 V2 â\86\92 L â\8a¢ T1 â\87\92 T2 â\86\92 L â\8a¢ ð\9d\95\97{I} V1. T1 â\87\92 𝕗{I} V2. T2.
+                L â\8a¢ V1 â\9e¡ V2 â\86\92 L â\8a¢ T1 â\9e¡ T2 â\86\92 L â\8a¢ ð\9d\95\97{I} V1. T1 â\9e¡ 𝕗{I} V2. T2.
 #I #L #V1 #V2 #T1 #T2 * #V #HV1 #HV2 * /3 width=5/
 qed.
 
 lemma cpr_cast: ∀L,V,T1,T2.
-                L â\8a¢ T1 â\87\92 T2 â\86\92 L â\8a¢ ð\9d\95\94{Cast} V. T1 â\87\92 T2.
+                L â\8a¢ T1 â\9e¡ T2 â\86\92 L â\8a¢ ð\9d\95\94{Cast} V. T1 â\9e¡ T2.
 #L #V #T1 #T2 * /3 width=3/
 qed.
 
 (* Note: it does not hold replacing |L1| with |L2| *)
 (* Basic_1: was only: pr2_change *)
-lemma cpr_lsubs_conf: â\88\80L1,T1,T2. L1 â\8a¢ T1 â\87\92 T2 →
-                      â\88\80L2. L1 [0, |L1|] â\89¼ L2 â\86\92 L2 â\8a¢ T1 â\87\92 T2.
+lemma cpr_lsubs_conf: â\88\80L1,T1,T2. L1 â\8a¢ T1 â\9e¡ T2 →
+                      â\88\80L2. L1 [0, |L1|] â\89¼ L2 â\86\92 L2 â\8a¢ T1 â\9e¡ T2.
 #L1 #T1 #T2 * #T #HT1 #HT2 #L2 #HL12 
 lapply (tpss_lsubs_conf … HT2 … HL12) -HT2 -HL12 /3 width=4/
 qed.
@@ -61,23 +61,23 @@ qed.
 (* Basic inversion lemmas ***************************************************)
 
 (* Basic_1: was: pr2_gen_csort *)
-lemma cpr_inv_atom: â\88\80T1,T2. â\8b\86 â\8a¢ T1 â\87\92 T2 â\86\92 T1 â\87\92 T2.
+lemma cpr_inv_atom: â\88\80T1,T2. â\8b\86 â\8a¢ T1 â\9e¡ T2 â\86\92 T1 â\9e¡ T2.
 #T1 #T2 * #T #HT normalize #HT2
 <(tpss_inv_refl_O2 … HT2) -HT2 //
 qed-.
 
 (* Basic_1: was: pr2_gen_sort *)
-lemma cpr_inv_sort1: â\88\80L,T2,k. L â\8a¢ â\8b\86k â\87\92 T2 → T2 = ⋆k.
+lemma cpr_inv_sort1: â\88\80L,T2,k. L â\8a¢ â\8b\86k â\9e¡ T2 → T2 = ⋆k.
 #L #T2 #k * #X #H
 >(tpr_inv_atom1 … H) -H #H
 >(tpss_inv_sort1 … H) -H //
 qed-.
 
 (* Basic_1: was: pr2_gen_cast *)
-lemma cpr_inv_cast1: â\88\80L,V1,T1,U2. L â\8a¢ ð\9d\95\94{Cast} V1. T1 â\87\92 U2 → (
-                        â\88\83â\88\83V2,T2. L â\8a¢ V1 â\87\92 V2 & L â\8a¢ T1 â\87\92 T2 &
+lemma cpr_inv_cast1: â\88\80L,V1,T1,U2. L â\8a¢ ð\9d\95\94{Cast} V1. T1 â\9e¡ U2 → (
+                        â\88\83â\88\83V2,T2. L â\8a¢ V1 â\9e¡ V2 & L â\8a¢ T1 â\9e¡ T2 &
                                  U2 = 𝕔{Cast} V2. T2
-                     ) â\88¨ L â\8a¢ T1 â\87\92 U2.
+                     ) â\88¨ L â\8a¢ T1 â\9e¡ U2.
 #L #V1 #T1 #U2 * #X #H #HU2
 elim (tpr_inv_cast1 … H) -H /3 width=3/
 * #V #T #HV1 #HT1 #H destruct
index 5ac57a614fd25332cac5e301b69e84c2885bdec5..553cde83a7407b2252b9a5bc5a8bdc44bb6d68a0 100644 (file)
@@ -19,15 +19,15 @@ include "Basic_2/reducibility/cpr.ma".
 
 (* Advanced properties ******************************************************)
 
-lemma cpr_bind_sn: â\88\80I,L,V1,V2,T1,T2. L â\8a¢ V1 â\87\92 V2 â\86\92 T1 â\87\92 T2 →
-                   L â\8a¢ ð\9d\95\93{I} V1. T1 â\87\92 𝕓{I} V2. T2.
+lemma cpr_bind_sn: â\88\80I,L,V1,V2,T1,T2. L â\8a¢ V1 â\9e¡ V2 â\86\92 T1 â\9e¡ T2 →
+                   L â\8a¢ ð\9d\95\93{I} V1. T1 â\9e¡ 𝕓{I} V2. T2.
 #I #L #V1 #V2 #T1 #T2 * #V #HV1 #HV2 #HT12 
 @ex2_1_intro [2: @(tpr_delta … HV1 HT12) | skip ] /2 width=3/ (* /3 width=5/ is too slow *)
 qed.
 
 (* Basic_1: was only: pr2_gen_cbind *)
-lemma cpr_bind_dx: â\88\80I,L,V1,V2,T1,T2. V1 â\87\92 V2 â\86\92 L. ð\9d\95\93{I} V2 â\8a¢ T1 â\87\92 T2 →
-                   L â\8a¢ ð\9d\95\93{I} V1. T1 â\87\92 𝕓{I} V2. T2.
+lemma cpr_bind_dx: â\88\80I,L,V1,V2,T1,T2. V1 â\9e¡ V2 â\86\92 L. ð\9d\95\93{I} V2 â\8a¢ T1 â\9e¡ T2 →
+                   L â\8a¢ ð\9d\95\93{I} V1. T1 â\9e¡ 𝕓{I} V2. T2.
 #I #L #V1 #V2 #T1 #T2 #HV12 * #T #HT1 normalize #HT2
 elim (tpss_split_up … HT2 1 ? ?) -HT2 // #T0 <minus_n_O #HT0 normalize <minus_plus_m_m #HT02
 lapply (tpss_lsubs_conf … HT0 (⋆. 𝕓{I} V2) ?) -HT0 /2 width=1/ #HT0
@@ -37,7 +37,7 @@ qed.
 
 (* Advanced forward lemmas **************************************************)
 
-lemma cpr_shift_fwd: â\88\80L,T1,T2. L â\8a¢ T1 â\87\92 T2 â\86\92 L @ T1 â\87\92 L @ T2.
+lemma cpr_shift_fwd: â\88\80L,T1,T2. L â\8a¢ T1 â\9e¡ T2 â\86\92 L @ T1 â\9e¡ L @ T2.
 #L elim L -L
 [ #T1 #T2 #HT12 @(cpr_inv_atom … HT12)
 | normalize /3 width=1/
@@ -47,8 +47,8 @@ qed-.
 (* Main properties **********************************************************)
 
 (* Basic_1: was: pr2_confluence *)
-theorem cpr_conf: â\88\80L,U0,T1,T2. L â\8a¢ U0 â\87\92 T1 â\86\92 L â\8a¢ U0 â\87\92 T2 →
-                  â\88\83â\88\83T. L â\8a¢ T1 â\87\92 T & L â\8a¢ T2 â\87\92 T.
+theorem cpr_conf: â\88\80L,U0,T1,T2. L â\8a¢ U0 â\9e¡ T1 â\86\92 L â\8a¢ U0 â\9e¡ T2 →
+                  â\88\83â\88\83T. L â\8a¢ T1 â\9e¡ T & L â\8a¢ T2 â\9e¡ T.
 #L #U0 #T1 #T2 * #U1 #HU01 #HUT1 * #U2 #HU02 #HUT2
 elim (tpr_conf … HU01 HU02) -U0 #U #HU1 #HU2 
 elim (tpr_tpss_ltpr ? L … HU1 … HUT1) -U1 // #U1 #HTU1 #HU1
index 380c6816b8db32c57129494cd21a2dc25fcbada5..5f800c99438740333dd551dcbe85c94a606da6d3 100644 (file)
@@ -21,8 +21,8 @@ include "Basic_2/reducibility/cpr.ma".
 (* Advanced properties ******************************************************)
 
 lemma cpr_cdelta: ∀L,K,V1,W1,W2,i.
-                  â\87\93[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V1 â\86\92 K â\8a¢ V1 [0, |L| - i - 1] â\89«* W1 →
-                  â\87\91[0, i + 1] W1 â\89¡ W2 â\86\92 L â\8a¢ #i â\87\92 W2.
+                  â\87©[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V1 â\86\92 K â\8a¢ V1 [0, |L| - i - 1] â\96* W1 →
+                  â\87§[0, i + 1] W1 â\89¡ W2 â\86\92 L â\8a¢ #i â\9e¡ W2.
 #L #K #V1 #W1 #W2 #i #HLK #HVW1 #HW12
 lapply (ldrop_fwd_ldrop2_length … HLK) #Hi
 @ex2_1_intro [2: // | skip | @tpss_subst /width=6/ ] (**) (* /3 width=6/ is too slow *)
@@ -31,11 +31,11 @@ qed.
 (* Advanced inversion lemmas ************************************************)
 
 (* Basic_1: was: pr2_gen_lref *)
-lemma cpr_inv_lref1: â\88\80L,T2,i. L â\8a¢ #i â\87\92 T2 →
+lemma cpr_inv_lref1: â\88\80L,T2,i. L â\8a¢ #i â\9e¡ T2 →
                      T2 = #i ∨
-                     â\88\83â\88\83K,V1,T1. â\87\93[0, i] L ≡ K. 𝕓{Abbr} V1 &
-                                K â\8a¢ V1 [0, |L| - i - 1] â\89«* T1 &
-                                â\87\91[0, i + 1] T1 ≡ T2 &
+                     â\88\83â\88\83K,V1,T1. â\87©[0, i] L ≡ K. 𝕓{Abbr} V1 &
+                                K â\8a¢ V1 [0, |L| - i - 1] â\96* T1 &
+                                â\87§[0, i + 1] T1 ≡ T2 &
                                 i < |L|.
 #L #T2 #i * #X #H
 >(tpr_inv_atom1 … H) -H #H
@@ -44,16 +44,16 @@ elim (tpss_inv_lref1 … H) -H /2 width=1/
 qed-.
 
 (* Basic_1: was: pr2_gen_abst *)
-lemma cpr_inv_abst1: â\88\80V1,T1,U2. ð\9d\95\94{Abst} V1. T1 â\87\92 U2 →
-                     â\88\83â\88\83V2,T2. V1 â\87\92 V2 & T1 â\87\92 T2 & U2 = 𝕔{Abst} V2. T2.
+lemma cpr_inv_abst1: â\88\80V1,T1,U2. ð\9d\95\94{Abst} V1. T1 â\9e¡ U2 →
+                     â\88\83â\88\83V2,T2. V1 â\9e¡ V2 & T1 â\9e¡ T2 & U2 = 𝕔{Abst} V2. T2.
 /2 width=3/ qed-.
 
 (* Relocation properties ****************************************************)
 
 (* Basic_1: was: pr2_lift *)
-lemma cpr_lift: â\88\80L,K,d,e. â\87\93[d, e] L ≡ K →
-                â\88\80T1,U1. â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\88\80T2,U2. â\87\91[d, e] T2 ≡ U2 →
-                K â\8a¢ T1 â\87\92 T2 â\86\92 L â\8a¢ U1 â\87\92 U2.
+lemma cpr_lift: â\88\80L,K,d,e. â\87©[d, e] L ≡ K →
+                â\88\80T1,U1. â\87§[d, e] T1 â\89¡ U1 â\86\92 â\88\80T2,U2. â\87§[d, e] T2 ≡ U2 →
+                K â\8a¢ T1 â\9e¡ T2 â\86\92 L â\8a¢ U1 â\9e¡ U2.
 #L #K #d #e #HLK #T1 #U1 #HTU1 #T2 #U2 #HTU2 * #T #HT1 #HT2
 elim (lift_total T d e) #U #HTU 
 lapply (tpr_lift … HT1 … HTU1 … HTU) -T1 #HU1
@@ -64,9 +64,9 @@ elim (lt_or_ge (|K|) d) #HKd
 qed.
 
 (* Basic_1: was: pr2_gen_lift *)
-lemma cpr_inv_lift: â\88\80L,K,d,e. â\87\93[d, e] L ≡ K →
-                    â\88\80T1,U1. â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. L â\8a¢ U1 â\87\92 U2 →
-                    â\88\83â\88\83T2. â\87\91[d, e] T2 â\89¡ U2 & K â\8a¢ T1 â\87\92 T2.
+lemma cpr_inv_lift: â\88\80L,K,d,e. â\87©[d, e] L ≡ K →
+                    â\88\80T1,U1. â\87§[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. L â\8a¢ U1 â\9e¡ U2 →
+                    â\88\83â\88\83T2. â\87§[d, e] T2 â\89¡ U2 & K â\8a¢ T1 â\9e¡ T2.
 #L #K #d #e #HLK #T1 #U1 #HTU1 #U2 * #U #HU1 #HU2
 elim (tpr_inv_lift … HU1 … HTU1) -U1 #T #HTU #T1
 elim (lt_or_ge (|L|) d) #HLd
index 1311e5290226731297019b3235b23cb18d69d906..ae26fa75daf98f67de27d48ca25504b66700c24f 100644 (file)
@@ -21,24 +21,24 @@ include "Basic_2/reducibility/cpr.ma".
 
 (* Note: we could invoke tpss_weak_all instead of ltpr_fwd_length *)
 (* Basic_1: was only: pr2_subst1 *)
-lemma cpr_tpss_ltpr: â\88\80L1,L2. L1 â\87\92 L2 â\86\92 â\88\80T1,T2. L2 â\8a¢ T1 â\87\92 T2 →
-                     â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\89«* U1 →
-                     â\88\83â\88\83U2. L2 â\8a¢ U1 â\87\92 U2 & L2 â\8a¢ T2 [d, e] â\89«* U2.
+lemma cpr_tpss_ltpr: â\88\80L1,L2. L1 â\9e¡ L2 â\86\92 â\88\80T1,T2. L2 â\8a¢ T1 â\9e¡ T2 →
+                     â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\96* U1 →
+                     â\88\83â\88\83U2. L2 â\8a¢ U1 â\9e¡ U2 & L2 â\8a¢ T2 [d, e] â\96* U2.
 #L1 #L2 #HL12 #T1 #T2 * #T #HT1 #HT2 #d #e #U1 #HTU1
 elim (tpr_tpss_ltpr … HL12 … HT1 … HTU1) -L1 -HT1 #U #HU1 #HTU
 elim (tpss_conf_eq … HT2 … HTU) -T /3 width=3/
 qed.
 
-lemma cpr_ltpr_conf_eq: â\88\80L1,T1,T2. L1 â\8a¢ T1 â\87\92 T2 â\86\92 â\88\80L2. L1 â\87\92 L2 →
-                        â\88\83â\88\83T. L2 â\8a¢ T1 â\87\92 T & T2 â\87\92 T.
+lemma cpr_ltpr_conf_eq: â\88\80L1,T1,T2. L1 â\8a¢ T1 â\9e¡ T2 â\86\92 â\88\80L2. L1 â\9e¡ L2 →
+                        â\88\83â\88\83T. L2 â\8a¢ T1 â\9e¡ T & T2 â\9e¡ T.
 #L1 #T1 #T2 * #T #HT1 #HT2 #L2 #HL12
 >(ltpr_fwd_length … HL12) in HT2; #HT2
 elim (tpr_tpss_ltpr … HL12 … HT2) -L1 /3 width=3/
 qed.
 
-lemma cpr_ltpr_conf_tpss: â\88\80L1,L2. L1 â\87\92 L2 â\86\92 â\88\80T1,T2. L1 â\8a¢ T1 â\87\92 T2 →
-                          â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\89«* U1 →
-                          â\88\83â\88\83U2. L2 â\8a¢ U1 â\87\92 U2 & L2 â\8a¢ T2 â\87\92 U2.
+lemma cpr_ltpr_conf_tpss: â\88\80L1,L2. L1 â\9e¡ L2 â\86\92 â\88\80T1,T2. L1 â\8a¢ T1 â\9e¡ T2 →
+                          â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\96* U1 →
+                          â\88\83â\88\83U2. L2 â\8a¢ U1 â\9e¡ U2 & L2 â\8a¢ T2 â\9e¡ U2.
 #L1 #L2 #HL12 #T1 #T2 #HT12 #d #e #U1 #HTU1
 elim (cpr_ltpr_conf_eq … HT12 … HL12) -HT12 #T #HT1 #HT2
 elim (cpr_tpss_ltpr … HL12 … HT1 … HTU1) -L1 -HT1 #U2 #HU12 #HTU2
index 30df056e08676b2e68b9f69f73124148233bf7e5..80d14a2e516f5e62a0befb1cccc3def5027f7fb5 100644 (file)
@@ -18,7 +18,7 @@ include "Basic_2/reducibility/ltpr.ma".
 (* CONTEXT-SENSITIVE PARALLEL REDUCTION ON LOCAL ENVIRONMENTS *************)
 
 definition lcpr: relation lenv ≝
-   Î»L1,L2. â\88\83â\88\83L. L1 â\87\92 L & L [0, |L|] â\89«* L2
+   Î»L1,L2. â\88\83â\88\83L. L1 â\9e¡ L & L [0, |L|] â\96* L2
 .
 
 interpretation
@@ -27,11 +27,11 @@ interpretation
 
 (* Basic properties *********************************************************)
 
-lemma lcpr_refl: â\88\80L. L â\8a¢ â\87\92 L.
+lemma lcpr_refl: â\88\80L. L â\8a¢ â\9e¡ L.
 /2 width=3/ qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-lemma lcpr_inv_atom1: â\88\80L2. â\8b\86 â\8a¢ â\87\92 L2 → L2 = ⋆.
+lemma lcpr_inv_atom1: â\88\80L2. â\8b\86 â\8a¢ â\9e¡ L2 → L2 = ⋆.
 #L2 * #L #HL >(ltpr_inv_atom1 … HL) -HL #HL2 >(ltpss_inv_atom1 … HL2) -HL2 //
 qed-.
index 2208557a7c188c950b6d651008fe637a8f36d0a0..3675669c32fdc975b17a567c7ea0d5e44023e51a 100644 (file)
@@ -19,7 +19,7 @@ include "Basic_2/reducibility/tpr.ma".
 inductive ltpr: relation lenv ≝
 | ltpr_stom: ltpr (⋆) (⋆)
 | ltpr_pair: ∀K1,K2,I,V1,V2.
-             ltpr K1 K2 â\86\92 V1 â\87\92 V2 → ltpr (K1. 𝕓{I} V1) (K2. 𝕓{I} V2) (*𝕓*)
+             ltpr K1 K2 â\86\92 V1 â\9e¡ V2 → ltpr (K1. 𝕓{I} V1) (K2. 𝕓{I} V2) (*𝕓*)
 .
 
 interpretation
@@ -28,13 +28,13 @@ interpretation
 
 (* Basic properties *********************************************************)
 
-lemma ltpr_refl: â\88\80L:lenv. L â\87\92 L.
+lemma ltpr_refl: â\88\80L:lenv. L â\9e¡ L.
 #L elim L -L // /2 width=1/
 qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact ltpr_inv_atom1_aux: â\88\80L1,L2. L1 â\87\92 L2 → L1 = ⋆ → L2 = ⋆.
+fact ltpr_inv_atom1_aux: â\88\80L1,L2. L1 â\9e¡ L2 → L1 = ⋆ → L2 = ⋆.
 #L1 #L2 * -L1 -L2
 [ //
 | #K1 #K2 #I #V1 #V2 #_ #_ #H destruct
@@ -42,11 +42,11 @@ fact ltpr_inv_atom1_aux: ∀L1,L2. L1 ⇒ L2 → L1 = ⋆ → L2 = ⋆.
 qed.
 
 (* Basic_1: was: wcpr0_gen_sort *)
-lemma ltpr_inv_atom1: â\88\80L2. â\8b\86 â\87\92 L2 → L2 = ⋆.
+lemma ltpr_inv_atom1: â\88\80L2. â\8b\86 â\9e¡ L2 → L2 = ⋆.
 /2 width=3/ qed-.
 
-fact ltpr_inv_pair1_aux: â\88\80L1,L2. L1 â\87\92 L2 → ∀K1,I,V1. L1 = K1. 𝕓{I} V1 →
-                         â\88\83â\88\83K2,V2. K1 â\87\92 K2 & V1 â\87\92 V2 & L2 = K2. 𝕓{I} V2.
+fact ltpr_inv_pair1_aux: â\88\80L1,L2. L1 â\9e¡ L2 → ∀K1,I,V1. L1 = K1. 𝕓{I} V1 →
+                         â\88\83â\88\83K2,V2. K1 â\9e¡ K2 & V1 â\9e¡ V2 & L2 = K2. 𝕓{I} V2.
 #L1 #L2 * -L1 -L2
 [ #K1 #I #V1 #H destruct
 | #K1 #K2 #I #V1 #V2 #HK12 #HV12 #L #J #W #H destruct /2 width=5/
@@ -54,35 +54,35 @@ fact ltpr_inv_pair1_aux: ∀L1,L2. L1 ⇒ L2 → ∀K1,I,V1. L1 = K1. 𝕓{I} V1
 qed.
 
 (* Basic_1: was: wcpr0_gen_head *)
-lemma ltpr_inv_pair1: â\88\80K1,I,V1,L2. K1. ð\9d\95\93{I} V1 â\87\92 L2 →
-                      â\88\83â\88\83K2,V2. K1 â\87\92 K2 & V1 â\87\92 V2 & L2 = K2. 𝕓{I} V2.
+lemma ltpr_inv_pair1: â\88\80K1,I,V1,L2. K1. ð\9d\95\93{I} V1 â\9e¡ L2 →
+                      â\88\83â\88\83K2,V2. K1 â\9e¡ K2 & V1 â\9e¡ V2 & L2 = K2. 𝕓{I} V2.
 /2 width=3/ qed-.
 
-fact ltpr_inv_atom2_aux: â\88\80L1,L2. L1 â\87\92 L2 → L2 = ⋆ → L1 = ⋆.
+fact ltpr_inv_atom2_aux: â\88\80L1,L2. L1 â\9e¡ L2 → L2 = ⋆ → L1 = ⋆.
 #L1 #L2 * -L1 -L2
 [ //
 | #K1 #K2 #I #V1 #V2 #_ #_ #H destruct
 ]
 qed.
 
-lemma ltpr_inv_atom2: â\88\80L1. L1 â\87\92 ⋆ → L1 = ⋆.
+lemma ltpr_inv_atom2: â\88\80L1. L1 â\9e¡ ⋆ → L1 = ⋆.
 /2 width=3/ qed-.
 
-fact ltpr_inv_pair2_aux: â\88\80L1,L2. L1 â\87\92 L2 → ∀K2,I,V2. L2 = K2. 𝕓{I} V2 →
-                         â\88\83â\88\83K1,V1. K1 â\87\92 K2 & V1 â\87\92 V2 & L1 = K1. 𝕓{I} V1.
+fact ltpr_inv_pair2_aux: â\88\80L1,L2. L1 â\9e¡ L2 → ∀K2,I,V2. L2 = K2. 𝕓{I} V2 →
+                         â\88\83â\88\83K1,V1. K1 â\9e¡ K2 & V1 â\9e¡ V2 & L1 = K1. 𝕓{I} V1.
 #L1 #L2 * -L1 -L2
 [ #K2 #I #V2 #H destruct
 | #K1 #K2 #I #V1 #V2 #HK12 #HV12 #K #J #W #H destruct /2 width=5/
 ]
 qed.
 
-lemma ltpr_inv_pair2: â\88\80L1,K2,I,V2. L1 â\87\92 K2. 𝕓{I} V2 →
-                      â\88\83â\88\83K1,V1. K1 â\87\92 K2 & V1 â\87\92 V2 & L1 = K1. 𝕓{I} V1.
+lemma ltpr_inv_pair2: â\88\80L1,K2,I,V2. L1 â\9e¡ K2. 𝕓{I} V2 →
+                      â\88\83â\88\83K1,V1. K1 â\9e¡ K2 & V1 â\9e¡ V2 & L1 = K1. 𝕓{I} V1.
 /2 width=3/ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma ltpr_fwd_length: â\88\80L1,L2. L1 â\87\92 L2 → |L1| = |L2|.
+lemma ltpr_fwd_length: â\88\80L1,L2. L1 â\9e¡ L2 → |L1| = |L2|.
 #L1 #L2 #H elim H -L1 -L2 normalize //
 qed-.
 
index 08ac62aafa2f7f3182817bc9c31c96caf463d5b6..9dd48e06272474bf33b13ee14e42b90c38f8b703 100644 (file)
@@ -18,8 +18,8 @@ include "Basic_2/reducibility/ltpr.ma".
 (* CONTEXT-FREE PARALLEL REDUCTION ON LOCAL ENVIRONMENTS ********************)
 
 (* Basic_1: was: wcpr0_ldrop *)
-lemma ltpr_ldrop_conf: â\88\80L1,K1,d,e. â\87\93[d, e] L1 â\89¡ K1 â\86\92 â\88\80L2. L1 â\87\92 L2 →
-                       â\88\83â\88\83K2. â\87\93[d, e] L2 â\89¡ K2 & K1 â\87\92 K2.
+lemma ltpr_ldrop_conf: â\88\80L1,K1,d,e. â\87©[d, e] L1 â\89¡ K1 â\86\92 â\88\80L2. L1 â\9e¡ L2 →
+                       â\88\83â\88\83K2. â\87©[d, e] L2 â\89¡ K2 & K1 â\9e¡ K2.
 #L1 #K1 #d #e #H elim H -L1 -K1 -d -e
 [ #d #e #X #H >(ltpr_inv_atom1 … H) -H /2 width=3/
 | #K1 #I #V1 #X #H
@@ -35,8 +35,8 @@ lemma ltpr_ldrop_conf: ∀L1,K1,d,e. ⇓[d, e] L1 ≡ K1 → ∀L2. L1 ⇒ L2 
 qed.
 
 (* Basic_1: was: wcpr0_ldrop_back *)
-lemma ltpr_ldrop_trans: â\88\80L1,K1,d,e. â\87\93[d, e] L1 â\89¡ K1 â\86\92 â\88\80K2. K1 â\87\92 K2 →
-                        â\88\83â\88\83L2. â\87\93[d, e] L2 â\89¡ K2 & L1 â\87\92 L2.
+lemma ltpr_ldrop_trans: â\88\80L1,K1,d,e. â\87©[d, e] L1 â\89¡ K1 â\86\92 â\88\80K2. K1 â\9e¡ K2 →
+                        â\88\83â\88\83L2. â\87©[d, e] L2 â\89¡ K2 & L1 â\9e¡ L2.
 #L1 #K1 #d #e #H elim H -L1 -K1 -d -e
 [ #d #e #X #H >(ltpr_inv_atom1 … H) -H /2 width=3/
 | #K1 #I #V1 #X #H
index 1353c7f0683e462f61c84f3725f3f2993e8f55d0..83ca7d0af8ea23dcdc556fe9e3d6bce30a6106d9 100644 (file)
@@ -62,7 +62,7 @@ qed-.
 
 (* Basic properties *********************************************************)
 
-lemma tpr_tif_eq: â\88\80T1,T2. T1 â\87\92 T2 →  𝕀[T1] → T1 = T2.
+lemma tpr_tif_eq: â\88\80T1,T2. T1 â\9e¡ T2 →  𝕀[T1] → T1 = T2.
 #T1 #T2 #H elim H -T1 -T2
 [ //
 | * #V1 #V2 #T1 #T2 #_ #_ #IHV1 #IHT1 #H
index 57a619fa58a54589ac69103355d9f9fa3488ac69..12aa95df65b5f128514260943c52dfea88ba0f81 100644 (file)
@@ -25,12 +25,12 @@ inductive tpr: relation term ≝
              tpr V1 V2 → tpr T1 T2 →
              tpr (𝕔{Appl} V1. 𝕔{Abst} W. T1) (𝕔{Abbr} V2. T2)
 | tpr_delta: ∀I,V1,V2,T1,T2,T.
-             tpr V1 V2 â\86\92 tpr T1 T2 â\86\92 â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\89« T →
+             tpr V1 V2 â\86\92 tpr T1 T2 â\86\92 â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\96 T →
              tpr (𝕓{I} V1. T1) (𝕓{I} V2. T)
 | tpr_theta: ∀V,V1,V2,W1,W2,T1,T2.
-             tpr V1 V2 â\86\92 â\87\91[0,1] V2 ≡ V → tpr W1 W2 → tpr T1 T2 →
+             tpr V1 V2 â\86\92 â\87§[0,1] V2 ≡ V → tpr W1 W2 → tpr T1 T2 →
              tpr (𝕔{Appl} V1. 𝕔{Abbr} W1. T1) (𝕔{Abbr} W2. 𝕔{Appl} V. T2)
-| tpr_zeta : â\88\80V,T,T1,T2. â\87\91[0,1] T1 ≡ T → tpr T1 T2 →
+| tpr_zeta : â\88\80V,T,T1,T2. â\87§[0,1] T1 ≡ T → tpr T1 T2 →
              tpr (𝕔{Abbr} V. T) T2
 | tpr_tau  : ∀V,T1,T2. tpr T1 T2 → tpr (𝕔{Cast} V. T1) T2
 .
@@ -41,19 +41,19 @@ interpretation
 
 (* Basic properties *********************************************************)
 
-lemma tpr_bind: â\88\80I,V1,V2,T1,T2. V1 â\87\92 V2 â\86\92 T1 â\87\92 T2 →
-                            ð\9d\95\93{I} V1. T1 â\87\92  𝕓{I} V2. T2.
+lemma tpr_bind: â\88\80I,V1,V2,T1,T2. V1 â\9e¡ V2 â\86\92 T1 â\9e¡ T2 →
+                            ð\9d\95\93{I} V1. T1 â\9e¡  𝕓{I} V2. T2.
 /2 width=3/ qed.
 
 (* Basic_1: was by definition: pr0_refl *)
-lemma tpr_refl: â\88\80T. T â\87\92 T.
+lemma tpr_refl: â\88\80T. T â\9e¡ T.
 #T elim T -T //
 #I elim I -I /2 width=1/
 qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact tpr_inv_atom1_aux: â\88\80U1,U2. U1 â\87\92 U2 → ∀I. U1 = 𝕒{I} → U2 = 𝕒{I}.
+fact tpr_inv_atom1_aux: â\88\80U1,U2. U1 â\9e¡ U2 → ∀I. U1 = 𝕒{I} → U2 = 𝕒{I}.
 #U1 #U2 * -U1 -U2
 [ //
 | #I #V1 #V2 #T1 #T2 #_ #_ #k #H destruct
@@ -66,15 +66,15 @@ fact tpr_inv_atom1_aux: ∀U1,U2. U1 ⇒ U2 → ∀I. U1 = 𝕒{I} → U2 = 𝕒
 qed.
 
 (* Basic_1: was: pr0_gen_sort pr0_gen_lref *)
-lemma tpr_inv_atom1: â\88\80I,U2. ð\9d\95\92{I} â\87\92 U2 → U2 = 𝕒{I}.
+lemma tpr_inv_atom1: â\88\80I,U2. ð\9d\95\92{I} â\9e¡ U2 → U2 = 𝕒{I}.
 /2 width=3/ qed-.
 
-fact tpr_inv_bind1_aux: â\88\80U1,U2. U1 â\87\92 U2 → ∀I,V1,T1. U1 = 𝕓{I} V1. T1 →
-                        (â\88\83â\88\83V2,T2,T. V1 â\87\92 V2 & T1 â\87\92 T2 &
-                                    â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\89« T &
+fact tpr_inv_bind1_aux: â\88\80U1,U2. U1 â\9e¡ U2 → ∀I,V1,T1. U1 = 𝕓{I} V1. T1 →
+                        (â\88\83â\88\83V2,T2,T. V1 â\9e¡ V2 & T1 â\9e¡ T2 &
+                                    â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\96 T &
                                     U2 = 𝕓{I} V2. T
                         ) ∨
-                        â\88\83â\88\83T. â\87\91[0,1] T â\89¡ T1 & T â\87\92 U2 & I = Abbr.
+                        â\88\83â\88\83T. â\87§[0,1] T â\89¡ T1 & T â\9e¡ U2 & I = Abbr.
 #U1 #U2 * -U1 -U2
 [ #J #I #V #T #H destruct
 | #I1 #V1 #V2 #T1 #T2 #_ #_ #I #V #T #H destruct
@@ -86,37 +86,37 @@ fact tpr_inv_bind1_aux: ∀U1,U2. U1 ⇒ U2 → ∀I,V1,T1. U1 = 𝕓{I} V1. T1
 ]
 qed.
 
-lemma tpr_inv_bind1: â\88\80V1,T1,U2,I. ð\9d\95\93{I} V1. T1 â\87\92 U2 →
-                     (â\88\83â\88\83V2,T2,T. V1 â\87\92 V2 & T1 â\87\92 T2 &
-                                 â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\89« T &
+lemma tpr_inv_bind1: â\88\80V1,T1,U2,I. ð\9d\95\93{I} V1. T1 â\9e¡ U2 →
+                     (â\88\83â\88\83V2,T2,T. V1 â\9e¡ V2 & T1 â\9e¡ T2 &
+                                 â\8b\86.  ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\96 T &
                                  U2 = 𝕓{I} V2. T
                      ) ∨
-                     â\88\83â\88\83T. â\87\91[0,1] T â\89¡ T1 & T â\87\92 U2 & I = Abbr.
+                     â\88\83â\88\83T. â\87§[0,1] T â\89¡ T1 & T â\9e¡ U2 & I = Abbr.
 /2 width=3/ qed-.
 
 (* Basic_1: was pr0_gen_abbr *)
-lemma tpr_inv_abbr1: â\88\80V1,T1,U2. ð\9d\95\93{Abbr} V1. T1 â\87\92 U2 →
-                     (â\88\83â\88\83V2,T2,T. V1 â\87\92 V2 & T1 â\87\92 T2 &
-                                 â\8b\86.  ð\9d\95\93{Abbr} V2 â\8a¢ T2 [0, 1] â\89« T &
+lemma tpr_inv_abbr1: â\88\80V1,T1,U2. ð\9d\95\93{Abbr} V1. T1 â\9e¡ U2 →
+                     (â\88\83â\88\83V2,T2,T. V1 â\9e¡ V2 & T1 â\9e¡ T2 &
+                                 â\8b\86.  ð\9d\95\93{Abbr} V2 â\8a¢ T2 [0, 1] â\96 T &
                                  U2 = 𝕓{Abbr} V2. T
                       ) ∨
-                      â\88\83â\88\83T. â\87\91[0,1] T â\89¡ T1 & T â\87\92 U2.
+                      â\88\83â\88\83T. â\87§[0,1] T â\89¡ T1 & T â\9e¡ U2.
 #V1 #T1 #U2 #H
 elim (tpr_inv_bind1 … H) -H * /3 width=7/
 qed-.
 
-fact tpr_inv_flat1_aux: â\88\80U1,U2. U1 â\87\92 U2 → ∀I,V1,U0. U1 = 𝕗{I} V1. U0 →
-                        â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\87\92 V2 & U0 â\87\92 T2 &
+fact tpr_inv_flat1_aux: â\88\80U1,U2. U1 â\9e¡ U2 → ∀I,V1,U0. U1 = 𝕗{I} V1. U0 →
+                        â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\9e¡ V2 & U0 â\9e¡ T2 &
                                                U2 = 𝕗{I} V2. T2
-                         | â\88\83â\88\83V2,W,T1,T2.       V1 â\87\92 V2 & T1 â\87\92 T2 &
+                         | â\88\83â\88\83V2,W,T1,T2.       V1 â\9e¡ V2 & T1 â\9e¡ T2 &
                                                U0 = 𝕔{Abst} W. T1 &
                                                U2 = 𝕔{Abbr} V2. T2 & I = Appl
-                         | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\87\92 V2 & W1 â\87\92 W2 & T1 â\87\92 T2 &
-                                               â\87\91[0,1] V2 ≡ V &
+                         | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\9e¡ V2 & W1 â\9e¡ W2 & T1 â\9e¡ T2 &
+                                               â\87§[0,1] V2 ≡ V &
                                                U0 = 𝕔{Abbr} W1. T1 &
                                                U2 = 𝕔{Abbr} W2. 𝕔{Appl} V. T2 &
                                                I = Appl
-                         |                     (U0 â\87\92 U2 ∧ I = Cast).
+                         |                     (U0 â\9e¡ U2 ∧ I = Cast).
 #U1 #U2 * -U1 -U2
 [ #I #J #V #T #H destruct
 | #I #V1 #V2 #T1 #T2 #HV12 #HT12 #J #V #T #H destruct /3 width=5/
@@ -128,29 +128,29 @@ fact tpr_inv_flat1_aux: ∀U1,U2. U1 ⇒ U2 → ∀I,V1,U0. U1 = 𝕗{I} V1. U0
 ]
 qed.
 
-lemma tpr_inv_flat1: â\88\80V1,U0,U2,I. ð\9d\95\97{I} V1. U0 â\87\92 U2 →
-                     â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\87\92 V2 & U0 â\87\92 T2 &
+lemma tpr_inv_flat1: â\88\80V1,U0,U2,I. ð\9d\95\97{I} V1. U0 â\9e¡ U2 →
+                     â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\9e¡ V2 & U0 â\9e¡ T2 &
                                             U2 = 𝕗{I} V2. T2
-                      | â\88\83â\88\83V2,W,T1,T2.       V1 â\87\92 V2 & T1 â\87\92 T2 &
+                      | â\88\83â\88\83V2,W,T1,T2.       V1 â\9e¡ V2 & T1 â\9e¡ T2 &
                                             U0 = 𝕔{Abst} W. T1 &
                                             U2 = 𝕔{Abbr} V2. T2 & I = Appl
-                      | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\87\92 V2 & W1 â\87\92 W2 & T1 â\87\92 T2 &
-                                            â\87\91[0,1] V2 ≡ V &
+                      | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\9e¡ V2 & W1 â\9e¡ W2 & T1 â\9e¡ T2 &
+                                            â\87§[0,1] V2 ≡ V &
                                             U0 = 𝕔{Abbr} W1. T1 &
                                             U2 = 𝕔{Abbr} W2. 𝕔{Appl} V. T2 &
                                             I = Appl
-                      |                     (U0 â\87\92 U2 ∧ I = Cast).
+                      |                     (U0 â\9e¡ U2 ∧ I = Cast).
 /2 width=3/ qed-.
 
 (* Basic_1: was pr0_gen_appl *)
-lemma tpr_inv_appl1: â\88\80V1,U0,U2. ð\9d\95\94{Appl} V1. U0 â\87\92 U2 →
-                     â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\87\92 V2 & U0 â\87\92 T2 &
+lemma tpr_inv_appl1: â\88\80V1,U0,U2. ð\9d\95\94{Appl} V1. U0 â\9e¡ U2 →
+                     â\88¨â\88¨ â\88\83â\88\83V2,T2.            V1 â\9e¡ V2 & U0 â\9e¡ T2 &
                                             U2 = 𝕔{Appl} V2. T2
-                      | â\88\83â\88\83V2,W,T1,T2.       V1 â\87\92 V2 & T1 â\87\92 T2 &
+                      | â\88\83â\88\83V2,W,T1,T2.       V1 â\9e¡ V2 & T1 â\9e¡ T2 &
                                             U0 = 𝕔{Abst} W. T1 &
                                             U2 = 𝕔{Abbr} V2. T2
-                      | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\87\92 V2 & W1 â\87\92 W2 & T1 â\87\92 T2 &
-                                            â\87\91[0,1] V2 ≡ V &
+                      | â\88\83â\88\83V2,V,W1,W2,T1,T2. V1 â\9e¡ V2 & W1 â\9e¡ W2 & T1 â\9e¡ T2 &
+                                            â\87§[0,1] V2 ≡ V &
                                             U0 = 𝕔{Abbr} W1. T1 &
                                             U2 = 𝕔{Abbr} W2. 𝕔{Appl} V. T2.
 #V1 #U0 #U2 #H
@@ -158,8 +158,8 @@ elim (tpr_inv_flat1 … H) -H * /3 width=12/ #_ #H destruct
 qed-.
 
 (* Note: the main property of simple terms *)
-lemma tpr_inv_appl1_simple: â\88\80V1,T1,U. ð\9d\95\94{Appl} V1. T1 â\87\92 U → 𝕊[T1] →
-                            â\88\83â\88\83V2,T2. V1 â\87\92 V2 & T1 â\87\92 T2 &
+lemma tpr_inv_appl1_simple: â\88\80V1,T1,U. ð\9d\95\94{Appl} V1. T1 â\9e¡ U → 𝕊[T1] →
+                            â\88\83â\88\83V2,T2. V1 â\9e¡ V2 & T1 â\9e¡ T2 &
                                      U = 𝕔{Appl} V2. T2.
 #V1 #T1 #U #H #HT1
 elim (tpr_inv_appl1 … H) -H *
@@ -172,9 +172,9 @@ elim (tpr_inv_appl1 … H) -H *
 qed-.
 
 (* Basic_1: was: pr0_gen_cast *)
-lemma tpr_inv_cast1: â\88\80V1,T1,U2. ð\9d\95\94{Cast} V1. T1 â\87\92 U2 →
-                       (â\88\83â\88\83V2,T2. V1 â\87\92 V2 & T1 â\87\92 T2 & U2 = 𝕔{Cast} V2. T2)
-                     â\88¨ T1 â\87\92 U2.
+lemma tpr_inv_cast1: â\88\80V1,T1,U2. ð\9d\95\94{Cast} V1. T1 â\9e¡ U2 →
+                       (â\88\83â\88\83V2,T2. V1 â\9e¡ V2 & T1 â\9e¡ T2 & U2 = 𝕔{Cast} V2. T2)
+                     â\88¨ T1 â\9e¡ U2.
 #V1 #T1 #U2 #H
 elim (tpr_inv_flat1 … H) -H * /3 width=5/
 [ #V2 #W #W1 #W2 #_ #_ #_ #_ #H destruct
@@ -182,11 +182,11 @@ elim (tpr_inv_flat1 … H) -H * /3 width=5/
 ]
 qed-.
 
-fact tpr_inv_lref2_aux: â\88\80T1,T2. T1 â\87\92 T2 → ∀i. T2 = #i →
+fact tpr_inv_lref2_aux: â\88\80T1,T2. T1 â\9e¡ T2 → ∀i. T2 = #i →
                         ∨∨           T1 = #i
-                         | â\88\83â\88\83V,T,T0. â\87\91[O,1] T0 â\89¡ T & T0 â\87\92 #i &
+                         | â\88\83â\88\83V,T,T0. â\87§[O,1] T0 â\89¡ T & T0 â\9e¡ #i &
                                      T1 = 𝕔{Abbr} V. T
-                         | â\88\83â\88\83V,T.    T â\87\92 #i & T1 = 𝕔{Cast} V. T.
+                         | â\88\83â\88\83V,T.    T â\9e¡ #i & T1 = 𝕔{Cast} V. T.
 #T1 #T2 * -T1 -T2
 [ #I #i #H destruct /2 width=1/
 | #I #V1 #V2 #T1 #T2 #_ #_ #i #H destruct
@@ -198,11 +198,11 @@ fact tpr_inv_lref2_aux: ∀T1,T2. T1 ⇒ T2 → ∀i. T2 = #i →
 ]
 qed.
 
-lemma tpr_inv_lref2: â\88\80T1,i. T1 â\87\92 #i →
+lemma tpr_inv_lref2: â\88\80T1,i. T1 â\9e¡ #i →
                      ∨∨           T1 = #i
-                      | â\88\83â\88\83V,T,T0. â\87\91[O,1] T0 â\89¡ T & T0 â\87\92 #i &
+                      | â\88\83â\88\83V,T,T0. â\87§[O,1] T0 â\89¡ T & T0 â\9e¡ #i &
                                   T1 = 𝕔{Abbr} V. T
-                      | â\88\83â\88\83V,T.    T â\87\92 #i & T1 = 𝕔{Cast} V. T.
+                      | â\88\83â\88\83V,T.    T â\9e¡ #i & T1 = 𝕔{Cast} V. T.
 /2 width=3/ qed-.
 
 (* Basic_1: removed theorems 3:
index 32a80aafc83c7e74ef166e42d7a0d6a846481510..91da5fabe90b28ec8d64e72afdb19d43f040dbde 100644 (file)
@@ -20,8 +20,8 @@ include "Basic_2/reducibility/tpr.ma".
 (* Relocation properties ****************************************************)
 
 (* Basic_1: was: pr0_lift *)
-lemma tpr_lift: â\88\80T1,T2. T1 â\87\92 T2 →
-                â\88\80d,e,U1. â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87\91[d, e] T2 â\89¡ U2 â\86\92 U1 â\87\92 U2.
+lemma tpr_lift: â\88\80T1,T2. T1 â\9e¡ T2 →
+                â\88\80d,e,U1. â\87§[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87§[d, e] T2 â\89¡ U2 â\86\92 U1 â\9e¡ U2.
 #T1 #T2 #H elim H -T1 -T2
 [ * #i #d #e #U1 #HU1 #U2 #HU2
   lapply (lift_mono … HU1 … HU2) -HU1 #H destruct
@@ -57,9 +57,9 @@ lemma tpr_lift: ∀T1,T2. T1 ⇒ T2 →
 qed.
 
 (* Basic_1: was: pr0_gen_lift *)
-lemma tpr_inv_lift: â\88\80T1,T2. T1 â\87\92 T2 →
-                    â\88\80d,e,U1. â\87\91[d, e] U1 ≡ T1 →
-                    â\88\83â\88\83U2. â\87\91[d, e] U2 â\89¡ T2 & U1 â\87\92 U2.
+lemma tpr_inv_lift: â\88\80T1,T2. T1 â\9e¡ T2 →
+                    â\88\80d,e,U1. â\87§[d, e] U1 ≡ T1 →
+                    â\88\83â\88\83U2. â\87§[d, e] U2 â\89¡ T2 & U1 â\9e¡ U2.
 #T1 #T2 #H elim H -T1 -T2
 [ * #i #d #e #U1 #HU1
   [ lapply (lift_inv_sort2 … HU1) -HU1 #H destruct /2 width=3/
@@ -101,8 +101,8 @@ qed.
 
 (* Advanced inversion lemmas ************************************************)
 
-fact tpr_inv_abst1_aux: â\88\80U1,U2. U1 â\87\92 U2 → ∀V1,T1. U1 = 𝕔{Abst} V1. T1 →
-                        â\88\83â\88\83V2,T2. V1 â\87\92 V2 & T1 â\87\92 T2 & U2 = 𝕔{Abst} V2. T2.
+fact tpr_inv_abst1_aux: â\88\80U1,U2. U1 â\9e¡ U2 → ∀V1,T1. U1 = 𝕔{Abst} V1. T1 →
+                        â\88\83â\88\83V2,T2. V1 â\9e¡ V2 & T1 â\9e¡ T2 & U2 = 𝕔{Abst} V2. T2.
 #U1 #U2 * -U1 -U2
 [ #I #V #T #H destruct
 | #I #V1 #V2 #T1 #T2 #_ #_ #V #T #H destruct
@@ -116,6 +116,6 @@ fact tpr_inv_abst1_aux: ∀U1,U2. U1 ⇒ U2 → ∀V1,T1. U1 = 𝕔{Abst} V1. T1
 qed.
 
 (* Basic_1: was pr0_gen_abst *)
-lemma tpr_inv_abst1: â\88\80V1,T1,U2. ð\9d\95\94{Abst} V1. T1 â\87\92 U2 →
-                     â\88\83â\88\83V2,T2. V1 â\87\92 V2 & T1 â\87\92 T2 & U2 = 𝕔{Abst} V2. T2.
+lemma tpr_inv_abst1: â\88\80V1,T1,U2. ð\9d\95\94{Abst} V1. T1 â\9e¡ U2 →
+                     â\88\83â\88\83V2,T2. V1 â\9e¡ V2 & T1 â\9e¡ T2 & U2 = 𝕔{Abst} V2. T2.
 /2 width=3/ qed-.
index e541b5777323fc633e2f725ebabd92ad9c46c9e4..d0243cfb7781c274a7b5b13df8a048a2a4333e82 100644 (file)
@@ -18,17 +18,17 @@ include "Basic_2/reducibility/tpr_tpss.ma".
 
 (* Confluence lemmas ********************************************************)
 
-fact tpr_conf_atom_atom: â\88\80I. â\88\83â\88\83X. ð\9d\95\92{I} â\87\92 X & ð\9d\95\92{I} â\87\92 X.
+fact tpr_conf_atom_atom: â\88\80I. â\88\83â\88\83X. ð\9d\95\92{I} â\9e¡ X & ð\9d\95\92{I} â\9e¡ X.
 /2 width=3/ qed.
 
 fact tpr_conf_flat_flat:
    ∀I,V0,V1,T0,T1,V2,T2. (
       ∀X0:term. #[X0] < #[V0] + #[T0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 â\86\92 T0 â\87\92 T1 â\86\92 T0 â\87\92 T2 →
-   â\88\83â\88\83T0. ð\9d\95\97{I} V1. T1 â\87\92 T0 & ð\9d\95\97{I} V2. T2 â\87\92 T0.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 â\86\92 T0 â\9e¡ T1 â\86\92 T0 â\9e¡ T2 →
+   â\88\83â\88\83T0. ð\9d\95\97{I} V1. T1 â\9e¡ T0 & ð\9d\95\97{I} V2. T2 â\9e¡ T0.
 #I #V0 #V1 #T0 #T1 #V2 #T2 #IH #HV01 #HV02 #HT01 #HT02
 elim (IH … HV01 … HV02) -HV01 -HV02 // #V #HV1 #HV2
 elim (IH … HT01 … HT02) -HT01 -HT02 -IH // /3 width=5/
@@ -37,12 +37,12 @@ qed.
 fact tpr_conf_flat_beta:
    ∀V0,V1,T1,V2,W0,U0,T2. (
       ∀X0:term. #[X0] < #[V0] + (#[W0] + #[U0] + 1) + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 →
-   U0 â\87\92 T2 â\86\92 ð\9d\95\94{Abst} W0. U0 â\87\92 T1 →
-   â\88\83â\88\83X. ð\9d\95\94{Appl} V1. T1 â\87\92 X & ð\9d\95\94{Abbr} V2. T2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 →
+   U0 â\9e¡ T2 â\86\92 ð\9d\95\94{Abst} W0. U0 â\9e¡ T1 →
+   â\88\83â\88\83X. ð\9d\95\94{Appl} V1. T1 â\9e¡ X & ð\9d\95\94{Abbr} V2. T2 â\9e¡ X.
 #V0 #V1 #T1 #V2 #W0 #U0 #T2 #IH #HV01 #HV02 #HT02 #H
 elim (tpr_inv_abst1 … H) -H #W1 #U1 #HW01 #HU01 #H destruct
 elim (IH … HV01 … HV02) -HV01 -HV02 /2 width=1/ #V #HV1 #HV2
@@ -56,12 +56,12 @@ qed.
 fact tpr_conf_flat_theta:
    ∀V0,V1,T1,V2,V,W0,W2,U0,U2. (
       ∀X0:term. #[X0] < #[V0] + (#[W0] + #[U0] + 1) + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 â\86\92 â\87\91[O,1] V2 ≡ V →
-   W0 â\87\92 W2 â\86\92 U0 â\87\92 U2 â\86\92  ð\9d\95\94{Abbr} W0. U0 â\87\92 T1 →
-   â\88\83â\88\83X. ð\9d\95\94{Appl} V1. T1 â\87\92 X & ð\9d\95\94{Abbr} W2. ð\9d\95\94{Appl} V. U2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 â\86\92 â\87§[O,1] V2 ≡ V →
+   W0 â\9e¡ W2 â\86\92 U0 â\9e¡ U2 â\86\92  ð\9d\95\94{Abbr} W0. U0 â\9e¡ T1 →
+   â\88\83â\88\83X. ð\9d\95\94{Appl} V1. T1 â\9e¡ X & ð\9d\95\94{Abbr} W2. ð\9d\95\94{Appl} V. U2 â\9e¡ X.
 #V0 #V1 #T1 #V2 #V #W0 #W2 #U0 #U2 #IH #HV01 #HV02 #HV2 #HW02 #HU02 #H
 elim (IH … HV01 … HV02) -HV01 -HV02 /2 width=1/ #VV #HVV1 #HVV2
 elim (lift_total VV 0 1) #VVV #HVV
@@ -93,11 +93,11 @@ qed.
 fact tpr_conf_flat_cast:
    ∀X2,V0,V1,T0,T1. (
       ∀X0:term. #[X0] < #[V0] + #[T0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 T0 â\87\92 T1 â\86\92 T0 â\87\92 X2 →
-   â\88\83â\88\83X. ð\9d\95\94{Cast} V1. T1 â\87\92 X & X2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 T0 â\9e¡ T1 â\86\92 T0 â\9e¡ X2 →
+   â\88\83â\88\83X. ð\9d\95\94{Cast} V1. T1 â\9e¡ X & X2 â\9e¡ X.
 #X2 #V0 #V1 #T0 #T1 #IH #_ #HT01 #HT02
 elim (IH … HT01 … HT02) -HT01 -HT02 -IH // /3 width=3/
 qed.
@@ -105,11 +105,11 @@ qed.
 fact tpr_conf_beta_beta:
    ∀W0:term. ∀V0,V1,T0,T1,V2,T2. (
       ∀X0:term. #[X0] < #[V0] + (#[W0] + #[T0] + 1) + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 â\86\92 T0 â\87\92 T1 â\86\92 T0 â\87\92 T2 →
-   â\88\83â\88\83X. ð\9d\95\94{Abbr} V1. T1 â\87\92X & ð\9d\95\94{Abbr} V2. T2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 â\86\92 T0 â\9e¡ T1 â\86\92 T0 â\9e¡ T2 →
+   â\88\83â\88\83X. ð\9d\95\94{Abbr} V1. T1 â\9e¡X & ð\9d\95\94{Abbr} V2. T2 â\9e¡ X.
 #W0 #V0 #V1 #T0 #T1 #V2 #T2 #IH #HV01 #HV02 #HT01 #HT02
 elim (IH … HV01 … HV02) -HV01 -HV02 /2 width=1/
 elim (IH … HT01 … HT02) -HT01 -HT02 -IH /2 width=1/ /3 width=5/
@@ -119,13 +119,13 @@ qed.
 fact tpr_conf_delta_delta:
    ∀I1,V0,V1,T0,T1,TT1,V2,T2,TT2. (
       ∀X0:term. #[X0] < #[V0] + #[T0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 â\86\92 T0 â\87\92 T1 â\86\92 T0 â\87\92 T2 →
-   â\8b\86. ð\9d\95\93{I1} V1 â\8a¢ T1 [O, 1] â\89« TT1 →
-   â\8b\86. ð\9d\95\93{I1} V2 â\8a¢ T2 [O, 1] â\89« TT2 →
-   â\88\83â\88\83X. ð\9d\95\93{I1} V1. TT1 â\87\92 X & ð\9d\95\93{I1} V2. TT2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 â\86\92 T0 â\9e¡ T1 â\86\92 T0 â\9e¡ T2 →
+   â\8b\86. ð\9d\95\93{I1} V1 â\8a¢ T1 [O, 1] â\96 TT1 →
+   â\8b\86. ð\9d\95\93{I1} V2 â\8a¢ T2 [O, 1] â\96 TT2 →
+   â\88\83â\88\83X. ð\9d\95\93{I1} V1. TT1 â\9e¡ X & ð\9d\95\93{I1} V2. TT2 â\9e¡ X.
 #I1 #V0 #V1 #T0 #T1 #TT1 #V2 #T2 #TT2 #IH #HV01 #HV02 #HT01 #HT02 #HTT1 #HTT2
 elim (IH … HV01 … HV02) -HV01 -HV02 // #V #HV1 #HV2
 elim (IH … HT01 … HT02) -HT01 -HT02 -IH // #T #HT1 #HT2
@@ -138,12 +138,12 @@ qed.
 fact tpr_conf_delta_zeta:
    ∀X2,V0,V1,T0,T1,TT1,T2. (
       ∀X0:term. #[X0] < #[V0] + #[T0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 T0 â\87\92 T1 â\86\92 â\8b\86. ð\9d\95\93{Abbr} V1 â\8a¢ T1 [O,1] â\89« TT1 →
-   T2 â\87\92 X2 â\86\92 â\87\91[O, 1] T2 ≡ T0 →
-   â\88\83â\88\83X. ð\9d\95\93{Abbr} V1. TT1 â\87\92 X & X2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 T0 â\9e¡ T1 â\86\92 â\8b\86. ð\9d\95\93{Abbr} V1 â\8a¢ T1 [O,1] â\96 TT1 →
+   T2 â\9e¡ X2 â\86\92 â\87§[O, 1] T2 ≡ T0 →
+   â\88\83â\88\83X. ð\9d\95\93{Abbr} V1. TT1 â\9e¡ X & X2 â\9e¡ X.
 #X2 #V0 #V1 #T0 #T1 #TT1 #T2 #IH #_ #HT01 #HTT1 #HTX2 #HTT20
 elim (tpr_inv_lift … HT01 … HTT20) -HT01 #TT2 #HTT21 #HTT2
 lapply (tps_inv_lift1_eq … HTT1 … HTT21) -HTT1 #HTT1 destruct
@@ -155,12 +155,12 @@ qed.
 fact tpr_conf_theta_theta:
    ∀VV1,V0,V1,W0,W1,T0,T1,V2,VV2,W2,T2. (
       ∀X0:term. #[X0] < #[V0] + (#[W0] + #[T0] + 1) + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   V0 â\87\92 V1 â\86\92 V0 â\87\92 V2 â\86\92 W0 â\87\92 W1 â\86\92 W0 â\87\92 W2 â\86\92 T0 â\87\92 T1 â\86\92 T0 â\87\92 T2 →
-   â\87\91[O, 1] V1 â\89¡ VV1 â\86\92 â\87\91[O, 1] V2 ≡ VV2 →
-   â\88\83â\88\83X. ð\9d\95\94{Abbr} W1. ð\9d\95\94{Appl} VV1. T1 â\87\92 X & ð\9d\95\94{Abbr} W2. ð\9d\95\94{Appl} VV2. T2 â\87\92 X.
+   V0 â\9e¡ V1 â\86\92 V0 â\9e¡ V2 â\86\92 W0 â\9e¡ W1 â\86\92 W0 â\9e¡ W2 â\86\92 T0 â\9e¡ T1 â\86\92 T0 â\9e¡ T2 →
+   â\87§[O, 1] V1 â\89¡ VV1 â\86\92 â\87§[O, 1] V2 ≡ VV2 →
+   â\88\83â\88\83X. ð\9d\95\94{Abbr} W1. ð\9d\95\94{Appl} VV1. T1 â\9e¡ X & ð\9d\95\94{Abbr} W2. ð\9d\95\94{Appl} VV2. T2 â\9e¡ X.
 #VV1 #V0 #V1 #W0 #W1 #T0 #T1 #V2 #VV2 #W2 #T2 #IH #HV01 #HV02 #HW01 #HW02 #HT01 #HT02 #HVV1 #HVV2
 elim (IH … HV01 … HV02) -HV01 -HV02 /2 width=1/ #V #HV1 #HV2
 elim (IH … HW01 … HW02) -HW01 -HW02 /2 width=1/ #W #HW1 #HW2
@@ -174,12 +174,12 @@ qed.
 fact tpr_conf_zeta_zeta:
    ∀V0:term. ∀X2,TT0,T0,T1,T2. (
       ∀X0:term. #[X0] < #[V0] + #[TT0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   T0 â\87\92 T1 â\86\92 T2 â\87\92 X2 →
-   â\87\91[O, 1] T0 â\89¡ TT0 â\86\92 â\87\91[O, 1] T2 ≡ TT0 →
-   â\88\83â\88\83X. T1 â\87\92 X & X2 â\87\92 X.
+   T0 â\9e¡ T1 â\86\92 T2 â\9e¡ X2 →
+   â\87§[O, 1] T0 â\89¡ TT0 â\86\92 â\87§[O, 1] T2 ≡ TT0 →
+   â\88\83â\88\83X. T1 â\9e¡ X & X2 â\9e¡ X.
 #V0 #X2 #TT0 #T0 #T1 #T2 #IH #HT01 #HTX2 #HTT0 #HTT20
 lapply (lift_inj … HTT0 … HTT20) -HTT0 #H destruct
 lapply (tw_lift … HTT20) -HTT20 #HTT20
@@ -189,11 +189,11 @@ qed.
 fact tpr_conf_tau_tau:
    ∀V0,T0:term. ∀X2,T1. (
       ∀X0:term. #[X0] < #[V0] + #[T0] + 1 →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
    ) →
-   T0 â\87\92 T1 â\86\92 T0 â\87\92 X2 →
-   â\88\83â\88\83X. T1 â\87\92 X & X2 â\87\92 X.
+   T0 â\9e¡ T1 â\86\92 T0 â\9e¡ X2 →
+   â\88\83â\88\83X. T1 â\9e¡ X & X2 â\9e¡ X.
 #V0 #T0 #X2 #T1 #IH #HT01 #HT02
 elim (IH … HT01 … HT02) -HT01 -HT02 -IH // /2 width=3/
 qed.
@@ -203,11 +203,11 @@ qed.
 fact tpr_conf_aux:
    ∀Y0:term. (
       ∀X0:term. #[X0] < #[Y0] →
-      â\88\80X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 →
-      â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X
+      â\88\80X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 →
+      â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X
          ) →
-   â\88\80X0,X1,X2. X0 â\87\92 X1 â\86\92 X0 â\87\92 X2 → X0 = Y0 →
-   â\88\83â\88\83X. X1 â\87\92 X & X2 â\87\92 X.
+   â\88\80X0,X1,X2. X0 â\9e¡ X1 â\86\92 X0 â\9e¡ X2 → X0 = Y0 →
+   â\88\83â\88\83X. X1 â\9e¡ X & X2 â\9e¡ X.
 #Y0 #IH #X0 #X1 #X2 * -X0 -X1
 [ #I1 #H1 #H2 destruct
   lapply (tpr_inv_atom1 … H1) -H1
@@ -281,7 +281,7 @@ fact tpr_conf_aux:
 qed.
 
 (* Basic_1: was: pr0_confluence *)
-theorem tpr_conf: â\88\80T0:term. â\88\80T1,T2. T0 â\87\92 T1 â\86\92 T0 â\87\92 T2 →
-                  â\88\83â\88\83T. T1 â\87\92 T & T2 â\87\92 T.
+theorem tpr_conf: â\88\80T0:term. â\88\80T1,T2. T0 â\9e¡ T1 â\86\92 T0 â\9e¡ T2 →
+                  â\88\83â\88\83T. T1 â\9e¡ T & T2 â\9e¡ T.
 #T @(tw_wf_ind … T) -T /3 width=6 by tpr_conf_aux/
 qed.
index e043031bdba20d038dd3239d30b80f7acbd842a6..7fd1011c0778cb183a35114cef3384a9e2ee742a 100644 (file)
@@ -20,10 +20,10 @@ include "Basic_2/reducibility/ltpr_ldrop.ma".
 (* Unfold properties ********************************************************)
 
 (* Basic_1: was: pr0_subst1 *)
-lemma tpr_tps_ltpr: â\88\80T1,T2. T1 â\87\92 T2 →
-                    â\88\80L1,d,e,U1. L1 â\8a¢ T1 [d, e] â\89« U1 →
-                    â\88\80L2. L1 â\87\92 L2 →
-                    â\88\83â\88\83U2. U1 â\87\92 U2 & L2 â\8a¢ T2 [d, e] â\89«* U2.
+lemma tpr_tps_ltpr: â\88\80T1,T2. T1 â\9e¡ T2 →
+                    â\88\80L1,d,e,U1. L1 â\8a¢ T1 [d, e] â\96 U1 →
+                    â\88\80L2. L1 â\9e¡ L2 →
+                    â\88\83â\88\83U2. U1 â\9e¡ U2 & L2 â\8a¢ T2 [d, e] â\96* U2.
 #T1 #T2 #H elim H -T1 -T2
 [ #I #L1 #d #e #X #H
   elim (tps_inv_atom1 … H) -H
@@ -75,16 +75,16 @@ lemma tpr_tps_ltpr: ∀T1,T2. T1 ⇒ T2 →
 ]
 qed.
 
-lemma tpr_tps_bind: â\88\80I,V1,V2,T1,T2,U1. V1 â\87\92 V2 â\86\92 T1 â\87\92 T2 →
-                    â\8b\86. ð\9d\95\93{I} V1 â\8a¢ T1 [0, 1] â\89« U1 →
-                    â\88\83â\88\83U2. U1 â\87\92 U2 & â\8b\86. ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\89« U2.
+lemma tpr_tps_bind: â\88\80I,V1,V2,T1,T2,U1. V1 â\9e¡ V2 â\86\92 T1 â\9e¡ T2 →
+                    â\8b\86. ð\9d\95\93{I} V1 â\8a¢ T1 [0, 1] â\96 U1 →
+                    â\88\83â\88\83U2. U1 â\9e¡ U2 & â\8b\86. ð\9d\95\93{I} V2 â\8a¢ T2 [0, 1] â\96 U2.
 #I #V1 #V2 #T1 #T2 #U1 #HV12 #HT12 #HTU1
 elim (tpr_tps_ltpr … HT12 … HTU1 (⋆. 𝕓{I} V2) ?) -T1 /2 width=1/ /3 width=3/
 qed.
 
-lemma tpr_tpss_ltpr: â\88\80L1,L2. L1 â\87\92 L2 â\86\92 â\88\80T1,T2. T1 â\87\92 T2 →
-                     â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\89«* U1 →
-                     â\88\83â\88\83U2. U1 â\87\92 U2 & L2 â\8a¢ T2 [d, e] â\89«* U2.
+lemma tpr_tpss_ltpr: â\88\80L1,L2. L1 â\9e¡ L2 â\86\92 â\88\80T1,T2. T1 â\9e¡ T2 →
+                     â\88\80d,e,U1. L1 â\8a¢ T1 [d, e] â\96* U1 →
+                     â\88\83â\88\83U2. U1 â\9e¡ U2 & L2 â\8a¢ T2 [d, e] â\96* U2.
 #L1 #L2 #HL12 #T1 #T2 #HT12 #d #e #U1 #HTU1 @(tpss_ind … HTU1) -U1
 [ /2 width=3/
 | -HT12 #U #U1 #_ #HU1 * #T #HUT #HT2
index fe6b66447ae96eac4bf52faa30219a704d5902b3..1ee06ad029e943e8227939dd1258b7554268d09b 100644 (file)
@@ -31,7 +31,7 @@ qed-.
 
 (* Basic properties *********************************************************)
 
-lemma tpr_thom: â\88\80T1,T2. T1 â\87\92 T2 → T1 ≈ T1 → T1 ≈ T2.
+lemma tpr_thom: â\88\80T1,T2. T1 â\9e¡ T2 → T1 ≈ T1 → T1 ≈ T2.
 #T1 #T2 #H elim H -T1 -T2 //
 [ #I #V1 #V2 #T1 #T2 #_ #_ #_ #IHT12 #H
   elim (thom_inv_flat1 … H) -H #W2 #U2 #HT1U2 #HT1 #_ #H1 #H2 destruct
index 526688e5c9089b04aefa6c31136c8df05e6d63bf..ea3e2d1c7748013afccb0c5b675bc749aa4e38bb 100644 (file)
@@ -19,7 +19,7 @@ include "Basic_2/substitution/ldrop.ma".
 
 inductive aaa: lenv → term → predicate aarity ≝
 | aaa_sort: ∀L,k. aaa L (⋆k) 𝕒
-| aaa_lref: â\88\80I,L,K,V,B,i. â\87\93[0, i] L ≡ K. 𝕓{I} V → aaa K V B → aaa L (#i) B
+| aaa_lref: â\88\80I,L,K,V,B,i. â\87©[0, i] L ≡ K. 𝕓{I} V → aaa K V B → aaa L (#i) B
 | aaa_abbr: ∀L,V,T,B,A.
             aaa L V B → aaa (L. 𝕓{Abbr} V) T A → aaa L (𝕔{Abbr} V. T) A
 | aaa_abst: ∀L,V,T,B,A.
index 2f677cb2ff3f6bcecf00df2ea4ea417f2ef1471c..869b47757ed672fe06c34a2259220ce97919fa5d 100644 (file)
@@ -23,11 +23,11 @@ inductive gdrop (e:nat): relation genv ≝
 .
 
 interpretation "global slicing" 
-   'RLDrop e G1 G2 = (gdrop e G1 G2).
+   'RDrop e G1 G2 = (gdrop e G1 G2).
 
 (* basic inversion lemmas ***************************************************)
 
-lemma gdrop_inv_gt: â\88\80G1,G2,e. â\87\93[e] G1 ≡ G2 → |G1| ≤ e → G2 = ⋆.
+lemma gdrop_inv_gt: â\88\80G1,G2,e. â\87©[e] G1 ≡ G2 → |G1| ≤ e → G2 = ⋆.
 #G1 #G2 #e * -G1 -G2 //
 [ #G #H >H -H >commutative_plus #H
   lapply (le_plus_to_le_r … 0 H) -H #H
@@ -39,7 +39,7 @@ lemma gdrop_inv_gt: ∀G1,G2,e. ⇓[e] G1 ≡ G2 → |G1| ≤ e → G2 = ⋆.
 ]
 qed-.
 
-lemma gdrop_inv_eq: â\88\80G1,G2,e. â\87\93[e] G1 ≡ G2 → |G1| = e + 1 → G1 = G2.
+lemma gdrop_inv_eq: â\88\80G1,G2,e. â\87©[e] G1 ≡ G2 → |G1| = e + 1 → G1 = G2.
 #G1 #G2 #e * -G1 -G2 //
 [ #G #H1 #H2 >H2 in H1; -H2 >commutative_plus #H
   lapply (le_plus_to_le_r … 0 H) -H #H
@@ -50,8 +50,8 @@ lemma gdrop_inv_eq: ∀G1,G2,e. ⇓[e] G1 ≡ G2 → |G1| = e + 1 → G1 = G2.
 ]
 qed-.
 
-fact gdrop_inv_lt_aux: â\88\80I,G,G1,G2,V,e. â\87\93[e] G ≡ G2 → G = G1. 𝕓{I} V →
-                       e < |G1| â\86\92 â\87\93[e] G1 ≡ G2.
+fact gdrop_inv_lt_aux: â\88\80I,G,G1,G2,V,e. â\87©[e] G ≡ G2 → G = G1. 𝕓{I} V →
+                       e < |G1| â\86\92 â\87©[e] G1 ≡ G2.
 #I #G #G1 #G2 #V #e * -G -G2
 [ #G #H1 #H destruct #H2
   lapply (le_to_lt_to_lt … H1 H2) -H1 -H2 normalize in ⊢ (? % ? → ?); >commutative_plus #H
@@ -64,12 +64,12 @@ fact gdrop_inv_lt_aux: ∀I,G,G1,G2,V,e. ⇓[e] G ≡ G2 → G = G1. 𝕓{I} V 
 qed.
 
 lemma gdrop_inv_lt: ∀I,G1,G2,V,e.
-                    â\87\93[e] G1. ð\9d\95\93{I} V â\89¡ G2 â\86\92 e < |G1| â\86\92 â\87\93[e] G1 ≡ G2.
+                    â\87©[e] G1. ð\9d\95\93{I} V â\89¡ G2 â\86\92 e < |G1| â\86\92 â\87©[e] G1 ≡ G2.
 /2 width=5/ qed-.
 
 (* Basic properties *********************************************************)
 
-lemma gdrop_total: â\88\80e,G1. â\88\83G2. â\87\93[e] G1 ≡ G2.
+lemma gdrop_total: â\88\80e,G1. â\88\83G2. â\87©[e] G1 ≡ G2.
 #e #G1 elim G1 -G1 /3 width=2/
 #I #V #G1 * #G2 #HG12
 elim (lt_or_eq_or_gt e (|G1|)) #He
index 9083e2b3a028827f069d41222eb775556d5c4715..640c36c7802ec97fab7f6c0074a34e1a4ffa98cc 100644 (file)
@@ -18,7 +18,7 @@ include "Basic_2/substitution/gdrop.ma".
 
 (* Main properties **********************************************************)
 
-theorem gdrop_mono: â\88\80G,G1,e. â\87\93[e] G â\89¡ G1 â\86\92 â\88\80G2. â\87\93[e] G ≡ G2 → G1 = G2.
+theorem gdrop_mono: â\88\80G,G1,e. â\87©[e] G â\89¡ G1 â\86\92 â\88\80G2. â\87©[e] G ≡ G2 → G1 = G2.
 #G #G1 #e #H elim H -G -G1
 [ #G #He #G2 #H
   >(gdrop_inv_gt … H He) -H -He //
@@ -29,7 +29,7 @@ theorem gdrop_mono: ∀G,G1,e. ⇓[e] G ≡ G1 → ∀G2. ⇓[e] G ≡ G2 → G1
 ]
 qed-.
 
-lemma gdrop_dec: â\88\80G1,G2,e. Decidable (â\87\93[e] G1 ≡ G2).
+lemma gdrop_dec: â\88\80G1,G2,e. Decidable (â\87©[e] G1 ≡ G2).
 #G1 #G2 #e
 elim (gdrop_total e G1) #G #HG1
 elim (genv_eq_dec G G2) #HG2
index c3219f4f46903d059f139f7179fc771beaf96f4c..d3788f4104ada2e50aaab0737ebc235e0f5c447d 100644 (file)
@@ -24,15 +24,15 @@ inductive ldrop: nat → nat → relation lenv ≝
 | ldrop_pair : ∀L,I,V. ldrop 0 0 (L. 𝕓{I} V) (L. 𝕓{I} V)
 | ldrop_ldrop: ∀L1,L2,I,V,e. ldrop 0 e L1 L2 → ldrop 0 (e + 1) (L1. 𝕓{I} V) L2
 | ldrop_skip : ∀L1,L2,I,V1,V2,d,e.
-               ldrop d e L1 L2 â\86\92 â\87\91[d,e] V2 ≡ V1 →
+               ldrop d e L1 L2 â\86\92 â\87§[d,e] V2 ≡ V1 →
                ldrop (d + 1) e (L1. 𝕓{I} V1) (L2. 𝕓{I} V2)
 .
 
-interpretation "local slicing" 'RLDrop d e L1 L2 = (ldrop d e L1 L2).
+interpretation "local slicing" 'RDrop d e L1 L2 = (ldrop d e L1 L2).
 
 (* Basic inversion lemmas ***************************************************)
 
-fact ldrop_inv_refl_aux: â\88\80d,e,L1,L2. â\87\93[d, e] L1 ≡ L2 → d = 0 → e = 0 → L1 = L2.
+fact ldrop_inv_refl_aux: â\88\80d,e,L1,L2. â\87©[d, e] L1 ≡ L2 → d = 0 → e = 0 → L1 = L2.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ //
 | //
@@ -42,10 +42,10 @@ fact ldrop_inv_refl_aux: ∀d,e,L1,L2. ⇓[d, e] L1 ≡ L2 → d = 0 → e = 0 
 qed.
 
 (* Basic_1: was: ldrop_gen_refl *)
-lemma ldrop_inv_refl: â\88\80L1,L2. â\87\93[0, 0] L1 ≡ L2 → L1 = L2.
+lemma ldrop_inv_refl: â\88\80L1,L2. â\87©[0, 0] L1 ≡ L2 → L1 = L2.
 /2 width=5/ qed-.
 
-fact ldrop_inv_atom1_aux: â\88\80d,e,L1,L2. â\87\93[d, e] L1 ≡ L2 → L1 = ⋆ →
+fact ldrop_inv_atom1_aux: â\88\80d,e,L1,L2. â\87©[d, e] L1 ≡ L2 → L1 = ⋆ →
                           L2 = ⋆.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ //
@@ -56,13 +56,13 @@ fact ldrop_inv_atom1_aux: ∀d,e,L1,L2. ⇓[d, e] L1 ≡ L2 → L1 = ⋆ →
 qed.
 
 (* Basic_1: was: ldrop_gen_sort *)
-lemma ldrop_inv_atom1: â\88\80d,e,L2. â\87\93[d, e] ⋆ ≡ L2 → L2 = ⋆.
+lemma ldrop_inv_atom1: â\88\80d,e,L2. â\87©[d, e] ⋆ ≡ L2 → L2 = ⋆.
 /2 width=5/ qed-.
 
-fact ldrop_inv_O1_aux: â\88\80d,e,L1,L2. â\87\93[d, e] L1 ≡ L2 → d = 0 →
+fact ldrop_inv_O1_aux: â\88\80d,e,L1,L2. â\87©[d, e] L1 ≡ L2 → d = 0 →
                        ∀K,I,V. L1 = K. 𝕓{I} V → 
                        (e = 0 ∧ L2 = K. 𝕓{I} V) ∨
-                       (0 < e â\88§ â\87\93[d, e - 1] K ≡ L2).
+                       (0 < e â\88§ â\87©[d, e - 1] K ≡ L2).
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #K #I #V #H destruct
 | #L #I #V #_ #K #J #W #HX destruct /3 width=1/
@@ -71,23 +71,23 @@ fact ldrop_inv_O1_aux: ∀d,e,L1,L2. ⇓[d, e] L1 ≡ L2 → d = 0 →
 ]
 qed.
 
-lemma ldrop_inv_O1: â\88\80e,K,I,V,L2. â\87\93[0, e] K. 𝕓{I} V ≡ L2 →
+lemma ldrop_inv_O1: â\88\80e,K,I,V,L2. â\87©[0, e] K. 𝕓{I} V ≡ L2 →
                     (e = 0 ∧ L2 = K. 𝕓{I} V) ∨
-                    (0 < e â\88§ â\87\93[0, e - 1] K ≡ L2).
+                    (0 < e â\88§ â\87©[0, e - 1] K ≡ L2).
 /2 width=3/ qed-.
 
 (* Basic_1: was: ldrop_gen_ldrop *)
 lemma ldrop_inv_ldrop1: ∀e,K,I,V,L2.
-                        â\87\93[0, e] K. ð\9d\95\93{I} V â\89¡ L2 â\86\92 0 < e â\86\92 â\87\93[0, e - 1] K ≡ L2.
+                        â\87©[0, e] K. ð\9d\95\93{I} V â\89¡ L2 â\86\92 0 < e â\86\92 â\87©[0, e - 1] K ≡ L2.
 #e #K #I #V #L2 #H #He
 elim (ldrop_inv_O1 … H) -H * // #H destruct
 elim (lt_refl_false … He)
 qed-.
 
-fact ldrop_inv_skip1_aux: â\88\80d,e,L1,L2. â\87\93[d, e] L1 ≡ L2 → 0 < d →
+fact ldrop_inv_skip1_aux: â\88\80d,e,L1,L2. â\87©[d, e] L1 ≡ L2 → 0 < d →
                           ∀I,K1,V1. L1 = K1. 𝕓{I} V1 →
-                          â\88\83â\88\83K2,V2. â\87\93[d - 1, e] K1 ≡ K2 &
-                                   â\87\91[d - 1, e] V2 ≡ V1 & 
+                          â\88\83â\88\83K2,V2. â\87©[d - 1, e] K1 ≡ K2 &
+                                   â\87§[d - 1, e] V2 ≡ V1 & 
                                    L2 = K2. 𝕓{I} V2.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K #V #H destruct
@@ -98,16 +98,16 @@ fact ldrop_inv_skip1_aux: ∀d,e,L1,L2. ⇓[d, e] L1 ≡ L2 → 0 < d →
 qed.
 
 (* Basic_1: was: ldrop_gen_skip_l *)
-lemma ldrop_inv_skip1: â\88\80d,e,I,K1,V1,L2. â\87\93[d, e] K1. 𝕓{I} V1 ≡ L2 → 0 < d →
-                       â\88\83â\88\83K2,V2. â\87\93[d - 1, e] K1 ≡ K2 &
-                                â\87\91[d - 1, e] V2 ≡ V1 & 
+lemma ldrop_inv_skip1: â\88\80d,e,I,K1,V1,L2. â\87©[d, e] K1. 𝕓{I} V1 ≡ L2 → 0 < d →
+                       â\88\83â\88\83K2,V2. â\87©[d - 1, e] K1 ≡ K2 &
+                                â\87§[d - 1, e] V2 ≡ V1 & 
                                 L2 = K2. 𝕓{I} V2.
 /2 width=3/ qed-.
 
-fact ldrop_inv_skip2_aux: â\88\80d,e,L1,L2. â\87\93[d, e] L1 ≡ L2 → 0 < d →
+fact ldrop_inv_skip2_aux: â\88\80d,e,L1,L2. â\87©[d, e] L1 ≡ L2 → 0 < d →
                           ∀I,K2,V2. L2 = K2. 𝕓{I} V2 →
-                          â\88\83â\88\83K1,V1. â\87\93[d - 1, e] K1 ≡ K2 &
-                                   â\87\91[d - 1, e] V2 ≡ V1 & 
+                          â\88\83â\88\83K1,V1. â\87©[d - 1, e] K1 ≡ K2 &
+                                   â\87§[d - 1, e] V2 ≡ V1 & 
                                    L1 = K1. 𝕓{I} V1.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K #V #H destruct
@@ -118,28 +118,28 @@ fact ldrop_inv_skip2_aux: ∀d,e,L1,L2. ⇓[d, e] L1 ≡ L2 → 0 < d →
 qed.
 
 (* Basic_1: was: ldrop_gen_skip_r *)
-lemma ldrop_inv_skip2: â\88\80d,e,I,L1,K2,V2. â\87\93[d, e] L1 ≡ K2. 𝕓{I} V2 → 0 < d →
-                       â\88\83â\88\83K1,V1. â\87\93[d - 1, e] K1 â\89¡ K2 & â\87\91[d - 1, e] V2 ≡ V1 &
+lemma ldrop_inv_skip2: â\88\80d,e,I,L1,K2,V2. â\87©[d, e] L1 ≡ K2. 𝕓{I} V2 → 0 < d →
+                       â\88\83â\88\83K1,V1. â\87©[d - 1, e] K1 â\89¡ K2 & â\87§[d - 1, e] V2 ≡ V1 &
                                 L1 = K1. 𝕓{I} V1.
 /2 width=3/ qed-.
 
 (* Basic properties *********************************************************)
 
 (* Basic_1: was by definition: ldrop_refl *)
-lemma ldrop_refl: â\88\80L. â\87\93[0, 0] L ≡ L.
+lemma ldrop_refl: â\88\80L. â\87©[0, 0] L ≡ L.
 #L elim L -L //
 qed.
 
 lemma ldrop_ldrop_lt: ∀L1,L2,I,V,e.
-                      â\87\93[0, e - 1] L1 â\89¡ L2 â\86\92 0 < e â\86\92 â\87\93[0, e] L1. 𝕓{I} V ≡ L2.
+                      â\87©[0, e - 1] L1 â\89¡ L2 â\86\92 0 < e â\86\92 â\87©[0, e] L1. 𝕓{I} V ≡ L2.
 #L1 #L2 #I #V #e #HL12 #He >(plus_minus_m_m e 1) // /2 width=1/
 qed.
 
 lemma ldrop_lsubs_ldrop1_abbr: ∀L1,L2,d,e. L1 [d, e] ≼ L2 →
-                               â\88\80K1,V,i. â\87\93[0, i] L1 ≡ K1. 𝕓{Abbr} V →
+                               â\88\80K1,V,i. â\87©[0, i] L1 ≡ K1. 𝕓{Abbr} V →
                                d ≤ i → i < d + e →
                                ∃∃K2. K1 [0, d + e - i - 1] ≼ K2 &
-                                     â\87\93[0, i] L2 ≡ K2. 𝕓{Abbr} V.
+                                     â\87©[0, i] L2 ≡ K2. 𝕓{Abbr} V.
 #L1 #L2 #d #e #H elim H -L1 -L2 -d -e
 [ #d #e #K1 #V #i #H
   lapply (ldrop_inv_atom1 … H) -H #H destruct
@@ -167,8 +167,8 @@ qed.
 (* Basic forvard lemmas *****************************************************)
 
 (* Basic_1: was: ldrop_S *)
-lemma ldrop_fwd_ldrop2: â\88\80L1,I2,K2,V2,e. â\87\93[O, e] L1 ≡ K2. 𝕓{I2} V2 →
-                        â\87\93[O, e + 1] L1 ≡ K2.
+lemma ldrop_fwd_ldrop2: â\88\80L1,I2,K2,V2,e. â\87©[O, e] L1 ≡ K2. 𝕓{I2} V2 →
+                        â\87©[O, e + 1] L1 ≡ K2.
 #L1 elim L1 -L1
 [ #I2 #K2 #V2 #e #H lapply (ldrop_inv_atom1 … H) -H #H destruct
 | #K1 #I1 #V1 #IHL1 #I2 #K2 #V2 #e #H
@@ -179,7 +179,7 @@ lemma ldrop_fwd_ldrop2: ∀L1,I2,K2,V2,e. ⇓[O, e] L1 ≡ K2. 𝕓{I2} V2 →
 ]
 qed-.
 
-lemma ldrop_fwd_lw: â\88\80L1,L2,d,e. â\87\93[d, e] L1 ≡ L2 → #[L2] ≤ #[L1].
+lemma ldrop_fwd_lw: â\88\80L1,L2,d,e. â\87©[d, e] L1 ≡ L2 → #[L2] ≤ #[L1].
 #L1 #L2 #d #e #H elim H -L1 -L2 -d -e // normalize
 [ /2 width=3/
 | #L1 #L2 #I #V1 #V2 #d #e #_ #HV21 #IHL12
@@ -188,7 +188,7 @@ lemma ldrop_fwd_lw: ∀L1,L2,d,e. ⇓[d, e] L1 ≡ L2 → #[L2] ≤ #[L1].
 qed-. 
 
 lemma ldrop_fwd_ldrop2_length: ∀L1,I2,K2,V2,e.
-                               â\87\93[0, e] L1 ≡ K2. 𝕓{I2} V2 → e < |L1|.
+                               â\87©[0, e] L1 ≡ K2. 𝕓{I2} V2 → e < |L1|.
 #L1 elim L1 -L1
 [ #I2 #K2 #V2 #e #H lapply (ldrop_inv_atom1 … H) -H #H destruct
 | #K1 #I1 #V1 #IHL1 #I2 #K2 #V2 #e #H
@@ -199,7 +199,7 @@ lemma ldrop_fwd_ldrop2_length: ∀L1,I2,K2,V2,e.
 ]
 qed-.
 
-lemma ldrop_fwd_O1_length: â\88\80L1,L2,e. â\87\93[0, e] L1 ≡ L2 → |L2| = |L1| - e.
+lemma ldrop_fwd_O1_length: â\88\80L1,L2,e. â\87©[0, e] L1 ≡ L2 → |L2| = |L1| - e.
 #L1 elim L1 -L1
 [ #L2 #e #H >(ldrop_inv_atom1 … H) -H //
 | #K1 #I1 #V1 #IHL1 #L2 #e #H
index e9b92d9e3e0eb3a16fe1218d2f3248e1ec7f6dc9..2c4b8879f4d0e0db71178590f8a7ecb24bd4049c 100644 (file)
@@ -20,8 +20,8 @@ include "Basic_2/substitution/ldrop.ma".
 (* Main properties **********************************************************)
 
 (* Basic_1: was: ldrop_mono *)
-theorem ldrop_mono: â\88\80d,e,L,L1. â\87\93[d, e] L ≡ L1 →
-                    â\88\80L2. â\87\93[d, e] L ≡ L2 → L1 = L2.
+theorem ldrop_mono: â\88\80d,e,L,L1. â\87©[d, e] L ≡ L1 →
+                    â\88\80L2. â\87©[d, e] L ≡ L2 → L1 = L2.
 #d #e #L #L1 #H elim H -d -e -L -L1
 [ #d #e #L2 #H
   >(ldrop_inv_atom1 … H) -L2 //
@@ -37,9 +37,9 @@ theorem ldrop_mono: ∀d,e,L,L1. ⇓[d, e] L ≡ L1 →
 qed-.
 
 (* Basic_1: was: ldrop_conf_ge *)
-theorem ldrop_conf_ge: â\88\80d1,e1,L,L1. â\87\93[d1, e1] L ≡ L1 →
-                       â\88\80e2,L2. â\87\93[0, e2] L ≡ L2 → d1 + e1 ≤ e2 →
-                       â\87\93[0, e2 - e1] L1 ≡ L2.
+theorem ldrop_conf_ge: â\88\80d1,e1,L,L1. â\87©[d1, e1] L ≡ L1 →
+                       â\88\80e2,L2. â\87©[0, e2] L ≡ L2 → d1 + e1 ≤ e2 →
+                       â\87©[0, e2 - e1] L1 ≡ L2.
 #d1 #e1 #L #L1 #H elim H -d1 -e1 -L -L1
 [ #d #e #e2 #L2 #H
   >(ldrop_inv_atom1 … H) -L2 //
@@ -56,11 +56,11 @@ theorem ldrop_conf_ge: ∀d1,e1,L,L1. ⇓[d1, e1] L ≡ L1 →
 qed.
 
 (* Basic_1: was: ldrop_conf_lt *)
-theorem ldrop_conf_lt: â\88\80d1,e1,L,L1. â\87\93[d1, e1] L ≡ L1 →
-                       â\88\80e2,K2,I,V2. â\87\93[0, e2] L ≡ K2. 𝕓{I} V2 →
+theorem ldrop_conf_lt: â\88\80d1,e1,L,L1. â\87©[d1, e1] L ≡ L1 →
+                       â\88\80e2,K2,I,V2. â\87©[0, e2] L ≡ K2. 𝕓{I} V2 →
                        e2 < d1 → let d ≝ d1 - e2 - 1 in
-                       â\88\83â\88\83K1,V1. â\87\93[0, e2] L1 ≡ K1. 𝕓{I} V1 &
-                                â\87\93[d, e1] K2 â\89¡ K1 & â\87\91[d, e1] V1 ≡ V2.
+                       â\88\83â\88\83K1,V1. â\87©[0, e2] L1 ≡ K1. 𝕓{I} V1 &
+                                â\87©[d, e1] K2 â\89¡ K1 & â\87§[d, e1] V1 ≡ V2.
 #d1 #e1 #L #L1 #H elim H -d1 -e1 -L -L1
 [ #d #e #e2 #K2 #I #V2 #H
   lapply (ldrop_inv_atom1 … H) -H #H destruct
@@ -78,9 +78,9 @@ theorem ldrop_conf_lt: ∀d1,e1,L,L1. ⇓[d1, e1] L ≡ L1 →
 qed.
 
 (* Basic_1: was: ldrop_trans_le *)
-theorem ldrop_trans_le: â\88\80d1,e1,L1,L. â\87\93[d1, e1] L1 ≡ L →
-                        â\88\80e2,L2. â\87\93[0, e2] L ≡ L2 → e2 ≤ d1 →
-                        â\88\83â\88\83L0. â\87\93[0, e2] L1 â\89¡ L0 & â\87\93[d1 - e2, e1] L0 ≡ L2.
+theorem ldrop_trans_le: â\88\80d1,e1,L1,L. â\87©[d1, e1] L1 ≡ L →
+                        â\88\80e2,L2. â\87©[0, e2] L ≡ L2 → e2 ≤ d1 →
+                        â\88\83â\88\83L0. â\87©[0, e2] L1 â\89¡ L0 & â\87©[d1 - e2, e1] L0 ≡ L2.
 #d1 #e1 #L1 #L #H elim H -d1 -e1 -L1 -L
 [ #d #e #e2 #L2 #H
   >(ldrop_inv_atom1 … H) -L2 /2 width=3/
@@ -100,8 +100,8 @@ theorem ldrop_trans_le: ∀d1,e1,L1,L. ⇓[d1, e1] L1 ≡ L →
 qed.
 
 (* Basic_1: was: ldrop_trans_ge *)
-theorem ldrop_trans_ge: â\88\80d1,e1,L1,L. â\87\93[d1, e1] L1 ≡ L →
-                        â\88\80e2,L2. â\87\93[0, e2] L â\89¡ L2 â\86\92 d1 â\89¤ e2 â\86\92 â\87\93[0, e1 + e2] L1 ≡ L2.
+theorem ldrop_trans_ge: â\88\80d1,e1,L1,L. â\87©[d1, e1] L1 ≡ L →
+                        â\88\80e2,L2. â\87©[0, e2] L â\89¡ L2 â\86\92 d1 â\89¤ e2 â\86\92 â\87©[0, e1 + e2] L1 ≡ L2.
 #d1 #e1 #L1 #L #H elim H -d1 -e1 -L1 -L
 [ #d #e #e2 #L2 #H
   >(ldrop_inv_atom1 … H) -H -L2 //
@@ -116,11 +116,11 @@ theorem ldrop_trans_ge: ∀d1,e1,L1,L. ⇓[d1, e1] L1 ≡ L →
 qed.
 
 theorem ldrop_trans_ge_comm: ∀d1,e1,e2,L1,L2,L.
-                             â\87\93[d1, e1] L1 â\89¡ L â\86\92 â\87\93[0, e2] L ≡ L2 → d1 ≤ e2 →
-                             â\87\93[0, e2 + e1] L1 ≡ L2.
+                             â\87©[d1, e1] L1 â\89¡ L â\86\92 â\87©[0, e2] L ≡ L2 → d1 ≤ e2 →
+                             â\87©[0, e2 + e1] L1 ≡ L2.
 #e1 #e1 #e2 >commutative_plus /2 width=5/
 qed.
 
 (* Basic_1: was: ldrop_conf_rev *)
-axiom ldrop_div: â\88\80e1,L1,L. â\87\93[0, e1] L1 â\89¡ L â\86\92 â\88\80e2,L2. â\87\93[0, e2] L2 ≡ L →
-                 â\88\83â\88\83L0. â\87\93[0, e1] L0 â\89¡ L2 & â\87\93[e1, e2] L0 ≡ L1.
+axiom ldrop_div: â\88\80e1,L1,L. â\87©[0, e1] L1 â\89¡ L â\86\92 â\88\80e2,L2. â\87©[0, e2] L2 ≡ L →
+                 â\88\83â\88\83L0. â\87©[0, e1] L0 â\89¡ L2 & â\87©[e1, e2] L0 ≡ L1.
index 0e0e6a7483158ff98819cbb2a9ec3b7a57d66a6d..5c7a28bd2a465f7063a3d982d6488cc1d6dedddf 100644 (file)
@@ -37,14 +37,14 @@ interpretation "relocation" 'RLift d e T1 T2 = (lift d e T1 T2).
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lift_inv_refl_O2_aux: â\88\80d,e,T1,T2. â\87\91[d, e] T1 ≡ T2 → e = 0 → T1 = T2.
+fact lift_inv_refl_O2_aux: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → e = 0 → T1 = T2.
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 // /3 width=1/
 qed.
 
-lemma lift_inv_refl_O2: â\88\80d,T1,T2. â\87\91[d, 0] T1 ≡ T2 → T1 = T2.
+lemma lift_inv_refl_O2: â\88\80d,T1,T2. â\87§[d, 0] T1 ≡ T2 → T1 = T2.
 /2 width=4/ qed-.
 
-fact lift_inv_sort1_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k → T2 = ⋆k.
+fact lift_inv_sort1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k → T2 = ⋆k.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -52,10 +52,10 @@ fact lift_inv_sort1_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k 
 ]
 qed.
 
-lemma lift_inv_sort1: â\88\80d,e,T2,k. â\87\91[d,e] ⋆k ≡ T2 → T2 = ⋆k.
+lemma lift_inv_sort1: â\88\80d,e,T2,k. â\87§[d,e] ⋆k ≡ T2 → T2 = ⋆k.
 /2 width=5/ qed-.
 
-fact lift_inv_lref1_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀i. T1 = #i →
+fact lift_inv_lref1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀i. T1 = #i →
                          (i < d ∧ T2 = #i) ∨ (d ≤ i ∧ T2 = #(i + e)).
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #i #H destruct
@@ -67,23 +67,23 @@ fact lift_inv_lref1_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀i. T1 = #i →
 ]
 qed.
 
-lemma lift_inv_lref1: â\88\80d,e,T2,i. â\87\91[d,e] #i ≡ T2 →
+lemma lift_inv_lref1: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 →
                       (i < d ∧ T2 = #i) ∨ (d ≤ i ∧ T2 = #(i + e)).
 /2 width=3/ qed-.
 
-lemma lift_inv_lref1_lt: â\88\80d,e,T2,i. â\87\91[d,e] #i ≡ T2 → i < d → T2 = #i.
+lemma lift_inv_lref1_lt: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 → i < d → T2 = #i.
 #d #e #T2 #i #H elim (lift_inv_lref1 … H) -H * //
 #Hdi #_ #Hid lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_refl_false … Hdd)
 qed-.
 
-lemma lift_inv_lref1_ge: â\88\80d,e,T2,i. â\87\91[d,e] #i ≡ T2 → d ≤ i → T2 = #(i + e).
+lemma lift_inv_lref1_ge: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 → d ≤ i → T2 = #(i + e).
 #d #e #T2 #i #H elim (lift_inv_lref1 … H) -H * //
 #Hid #_ #Hdi lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_refl_false … Hdd)
 qed-.
 
-fact lift_inv_gref1_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀p. T1 = §p → T2 = §p.
+fact lift_inv_gref1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀p. T1 = §p → T2 = §p.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -91,12 +91,12 @@ fact lift_inv_gref1_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀p. T1 = §p →
 ]
 qed.
 
-lemma lift_inv_gref1: â\88\80d,e,T2,p. â\87\91[d,e] §p ≡ T2 → T2 = §p.
+lemma lift_inv_gref1: â\88\80d,e,T2,p. â\87§[d,e] §p ≡ T2 → T2 = §p.
 /2 width=5/ qed-.
 
-fact lift_inv_bind1_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 →
+fact lift_inv_bind1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
                          ∀I,V1,U1. T1 = 𝕓{I} V1.U1 →
-                         â\88\83â\88\83V2,U2. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d+1,e] U1 ≡ U2 &
+                         â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
                                   T2 = 𝕓{I} V2. U2.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V1 #U1 #H destruct
@@ -108,14 +108,14 @@ fact lift_inv_bind1_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 →
 ]
 qed.
 
-lemma lift_inv_bind1: â\88\80d,e,T2,I,V1,U1. â\87\91[d,e] 𝕓{I} V1. U1 ≡ T2 →
-                      â\88\83â\88\83V2,U2. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d+1,e] U1 ≡ U2 &
+lemma lift_inv_bind1: â\88\80d,e,T2,I,V1,U1. â\87§[d,e] 𝕓{I} V1. U1 ≡ T2 →
+                      â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
                                T2 = 𝕓{I} V2. U2.
 /2 width=3/ qed-.
 
-fact lift_inv_flat1_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 →
+fact lift_inv_flat1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
                          ∀I,V1,U1. T1 = 𝕗{I} V1.U1 →
-                         â\88\83â\88\83V2,U2. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d,e] U1 ≡ U2 &
+                         â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
                                   T2 = 𝕗{I} V2. U2.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V1 #U1 #H destruct
@@ -127,12 +127,12 @@ fact lift_inv_flat1_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 →
 ]
 qed.
 
-lemma lift_inv_flat1: â\88\80d,e,T2,I,V1,U1. â\87\91[d,e] 𝕗{I} V1. U1 ≡ T2 →
-                      â\88\83â\88\83V2,U2. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d,e] U1 ≡ U2 &
+lemma lift_inv_flat1: â\88\80d,e,T2,I,V1,U1. â\87§[d,e] 𝕗{I} V1. U1 ≡ T2 →
+                      â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
                                T2 = 𝕗{I} V2. U2.
 /2 width=3/ qed-.
 
-fact lift_inv_sort2_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k → T1 = ⋆k.
+fact lift_inv_sort2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k → T1 = ⋆k.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -141,10 +141,10 @@ fact lift_inv_sort2_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k 
 qed.
 
 (* Basic_1: was: lift_gen_sort *)
-lemma lift_inv_sort2: â\88\80d,e,T1,k. â\87\91[d,e] T1 ≡ ⋆k → T1 = ⋆k.
+lemma lift_inv_sort2: â\88\80d,e,T1,k. â\87§[d,e] T1 ≡ ⋆k → T1 = ⋆k.
 /2 width=5/ qed-.
 
-fact lift_inv_lref2_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀i. T2 = #i →
+fact lift_inv_lref2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀i. T2 = #i →
                          (i < d ∧ T1 = #i) ∨ (d + e ≤ i ∧ T1 = #(i - e)).
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #i #H destruct
@@ -157,12 +157,12 @@ fact lift_inv_lref2_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀i. T2 = #i →
 qed.
 
 (* Basic_1: was: lift_gen_lref *)
-lemma lift_inv_lref2: â\88\80d,e,T1,i. â\87\91[d,e] T1 ≡ #i →
+lemma lift_inv_lref2: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i →
                       (i < d ∧ T1 = #i) ∨ (d + e ≤ i ∧ T1 = #(i - e)).
 /2 width=3/ qed-.
 
 (* Basic_1: was: lift_gen_lref_lt *)
-lemma lift_inv_lref2_lt: â\88\80d,e,T1,i. â\87\91[d,e] T1 ≡ #i → i < d → T1 = #i.
+lemma lift_inv_lref2_lt: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i → i < d → T1 = #i.
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H * //
 #Hdi #_ #Hid lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_inv_plus_l … Hdd) -Hdd #Hdd
@@ -170,7 +170,7 @@ elim (lt_refl_false … Hdd)
 qed-.
 
 (* Basic_1: was: lift_gen_lref_false *)
-lemma lift_inv_lref2_be: â\88\80d,e,T1,i. â\87\91[d,e] T1 ≡ #i →
+lemma lift_inv_lref2_be: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i →
                          d ≤ i → i < d + e → False.
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H *
 [ #H1 #_ #H2 #_ | #H2 #_ #_ #H1 ]
@@ -179,14 +179,14 @@ elim (lt_refl_false … H)
 qed-.
 
 (* Basic_1: was: lift_gen_lref_ge *)
-lemma lift_inv_lref2_ge: â\88\80d,e,T1,i. â\87\91[d,e] T1 ≡ #i → d + e ≤ i → T1 = #(i - e).
+lemma lift_inv_lref2_ge: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i → d + e ≤ i → T1 = #(i - e).
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H * //
 #Hid #_ #Hdi lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_inv_plus_l … Hdd) -Hdd #Hdd
 elim (lt_refl_false … Hdd)
 qed-.
 
-fact lift_inv_gref2_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 → ∀p. T2 = §p → T1 = §p.
+fact lift_inv_gref2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀p. T2 = §p → T1 = §p.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -194,12 +194,12 @@ fact lift_inv_gref2_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 → ∀p. T2 = §p →
 ]
 qed.
 
-lemma lift_inv_gref2: â\88\80d,e,T1,p. â\87\91[d,e] T1 ≡ §p → T1 = §p.
+lemma lift_inv_gref2: â\88\80d,e,T1,p. â\87§[d,e] T1 ≡ §p → T1 = §p.
 /2 width=5/ qed-.
 
-fact lift_inv_bind2_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 →
+fact lift_inv_bind2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
                          ∀I,V2,U2. T2 = 𝕓{I} V2.U2 →
-                         â\88\83â\88\83V1,U1. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d+1,e] U1 ≡ U2 &
+                         â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
                                   T1 = 𝕓{I} V1. U1.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V2 #U2 #H destruct
@@ -212,14 +212,14 @@ fact lift_inv_bind2_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was: lift_gen_bind *)
-lemma lift_inv_bind2: â\88\80d,e,T1,I,V2,U2. â\87\91[d,e] T1 ≡  𝕓{I} V2. U2 →
-                      â\88\83â\88\83V1,U1. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d+1,e] U1 ≡ U2 &
+lemma lift_inv_bind2: â\88\80d,e,T1,I,V2,U2. â\87§[d,e] T1 ≡  𝕓{I} V2. U2 →
+                      â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
                                T1 = 𝕓{I} V1. U1.
 /2 width=3/ qed-.
 
-fact lift_inv_flat2_aux: â\88\80d,e,T1,T2. â\87\91[d,e] T1 ≡ T2 →
+fact lift_inv_flat2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
                          ∀I,V2,U2. T2 = 𝕗{I} V2.U2 →
-                         â\88\83â\88\83V1,U1. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d,e] U1 ≡ U2 &
+                         â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
                                   T1 = 𝕗{I} V1. U1.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V2 #U2 #H destruct
@@ -232,12 +232,12 @@ fact lift_inv_flat2_aux: ∀d,e,T1,T2. ⇑[d,e] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was: lift_gen_flat *)
-lemma lift_inv_flat2: â\88\80d,e,T1,I,V2,U2. â\87\91[d,e] T1 ≡  𝕗{I} V2. U2 →
-                      â\88\83â\88\83V1,U1. â\87\91[d,e] V1 â\89¡ V2 & â\87\91[d,e] U1 ≡ U2 &
+lemma lift_inv_flat2: â\88\80d,e,T1,I,V2,U2. â\87§[d,e] T1 ≡  𝕗{I} V2. U2 →
+                      â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
                                T1 = 𝕗{I} V1. U1.
 /2 width=3/ qed-.
 
-lemma lift_inv_pair_xy_x: â\88\80d,e,I,V,T. â\87\91[d, e] 𝕔{I} V. T ≡ V → False.
+lemma lift_inv_pair_xy_x: â\88\80d,e,I,V,T. â\87§[d, e] 𝕔{I} V. T ≡ V → False.
 #d #e #J #V elim V -V
 [ * #i #T #H
   [ lapply (lift_inv_sort2 … H) -H #H destruct
@@ -251,7 +251,7 @@ lemma lift_inv_pair_xy_x: ∀d,e,I,V,T. ⇑[d, e] 𝕔{I} V. T ≡ V → False.
 ]
 qed-.
 
-lemma lift_inv_pair_xy_y: â\88\80I,T,V,d,e. â\87\91[d, e] 𝕔{I} V. T ≡ T → False.
+lemma lift_inv_pair_xy_y: â\88\80I,T,V,d,e. â\87§[d, e] 𝕔{I} V. T ≡ T → False.
 #J #T elim T -T
 [ * #i #V #d #e #H
   [ lapply (lift_inv_sort2 … H) -H #H destruct
@@ -267,17 +267,17 @@ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma tw_lift: â\88\80d,e,T1,T2. â\87\91[d, e] T1 ≡ T2 → #[T1] = #[T2].
+lemma tw_lift: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → #[T1] = #[T2].
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 normalize //
 qed-.
 
-lemma lift_simple_dx: â\88\80d,e,T1,T2. â\87\91[d, e] T1 ≡ T2 → 𝕊[T1] → 𝕊[T2].
+lemma lift_simple_dx: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → 𝕊[T1] → 𝕊[T2].
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 //
 #I #V1 #V2 #T1 #T2 #d #e #_ #_ #_ #_ #H
 elim (simple_inv_bind … H)
 qed-.
 
-lemma lift_simple_sn: â\88\80d,e,T1,T2. â\87\91[d, e] T1 ≡ T2 → 𝕊[T2] → 𝕊[T1].
+lemma lift_simple_sn: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → 𝕊[T2] → 𝕊[T1].
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 //
 #I #V1 #V2 #T1 #T2 #d #e #_ #_ #_ #_ #H
 elim (simple_inv_bind … H)
@@ -286,22 +286,22 @@ qed-.
 (* Basic properties *********************************************************)
 
 (* Basic_1: was: lift_lref_gt *)
-lemma lift_lref_ge_minus: â\88\80d,e,i. d + e â\89¤ i â\86\92 â\87\91[d, e] #(i - e) ≡ #i.
+lemma lift_lref_ge_minus: â\88\80d,e,i. d + e â\89¤ i â\86\92 â\87§[d, e] #(i - e) ≡ #i.
 #d #e #i #H >(plus_minus_m_m i e) in ⊢ (? ? ? ? %); /2 width=2/ /3 width=2/
 qed.
 
-lemma lift_lref_ge_minus_eq: â\88\80d,e,i,j. d + e â\89¤ i â\86\92 j = i - e â\86\92 â\87\91[d, e] #j ≡ #i.
+lemma lift_lref_ge_minus_eq: â\88\80d,e,i,j. d + e â\89¤ i â\86\92 j = i - e â\86\92 â\87§[d, e] #j ≡ #i.
 /2 width=1/ qed-.
 
 (* Basic_1: was: lift_r *)
-lemma lift_refl: â\88\80T,d. â\87\91[d, 0] T ≡ T.
+lemma lift_refl: â\88\80T,d. â\87§[d, 0] T ≡ T.
 #T elim T -T
 [ * #i // #d elim (lt_or_ge i d) /2 width=1/
 | * /2 width=1/
 ]
 qed.
 
-lemma lift_total: â\88\80T1,d,e. â\88\83T2. â\87\91[d,e] T1 ≡ T2.
+lemma lift_total: â\88\80T1,d,e. â\88\83T2. â\87§[d,e] T1 ≡ T2.
 #T1 elim T1 -T1
 [ * #i /2 width=2/ #d #e elim (lt_or_ge i d) /3 width=2/
 | * #I #V1 #T1 #IHV1 #IHT1 #d #e
@@ -313,9 +313,9 @@ lemma lift_total: ∀T1,d,e. ∃T2. ⇑[d,e] T1 ≡ T2.
 qed.
 
 (* Basic_1: was: lift_free (right to left) *)
-lemma lift_split: â\88\80d1,e2,T1,T2. â\87\91[d1, e2] T1 ≡ T2 →
+lemma lift_split: â\88\80d1,e2,T1,T2. â\87§[d1, e2] T1 ≡ T2 →
                   ∀d2,e1. d1 ≤ d2 → d2 ≤ d1 + e1 → e1 ≤ e2 →
-                  â\88\83â\88\83T. â\87\91[d1, e1] T1 â\89¡ T & â\87\91[d2, e2 - e1] T ≡ T2.
+                  â\88\83â\88\83T. â\87§[d1, e1] T1 â\89¡ T & â\87§[d2, e2 - e1] T ≡ T2.
 #d1 #e2 #T1 #T2 #H elim H -d1 -e2 -T1 -T2
 [ /3 width=3/
 | #i #d1 #e2 #Hid1 #d2 #e1 #Hd12 #_ #_
@@ -334,7 +334,7 @@ lemma lift_split: ∀d1,e2,T1,T2. ⇑[d1, e2] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was only: dnf_dec2 dnf_dec *)
-lemma is_lift_dec: â\88\80T2,d,e. Decidable (â\88\83T1. â\87\91[d,e] T1 ≡ T2).
+lemma is_lift_dec: â\88\80T2,d,e. Decidable (â\88\83T1. â\87§[d,e] T1 ≡ T2).
 #T1 elim T1 -T1
 [ * [1,3: /3 width=2/ ] #i #d #e
   elim (lt_dec i d) #Hid
index 6626b4e573f7798967e5640eb25a5b0da899067e..235c4233d1f1fc627ccf5bf7118a73814868c52c 100644 (file)
@@ -19,7 +19,7 @@ include "Basic_2/substitution/lift.ma".
 (* Main properies ***********************************************************)
 
 (* Basic_1: was: lift_inj *)
-theorem lift_inj:  â\88\80d,e,T1,U. â\87\91[d,e] T1 â\89¡ U â\86\92 â\88\80T2. â\87\91[d,e] T2 ≡ U → T1 = T2.
+theorem lift_inj:  â\88\80d,e,T1,U. â\87§[d,e] T1 â\89¡ U â\86\92 â\88\80T2. â\87§[d,e] T2 ≡ U → T1 = T2.
 #d #e #T1 #U #H elim H -d -e -T1 -U
 [ #k #d #e #X #HX
   lapply (lift_inv_sort2 … HX) -HX //
@@ -37,10 +37,10 @@ theorem lift_inj:  ∀d,e,T1,U. ⇑[d,e] T1 ≡ U → ∀T2. ⇑[d,e] T2 ≡ U 
 qed-.
 
 (* Basic_1: was: lift_gen_lift *)
-theorem lift_div_le: â\88\80d1,e1,T1,T. â\87\91[d1, e1] T1 ≡ T →
-                     â\88\80d2,e2,T2. â\87\91[d2 + e1, e2] T2 ≡ T →
+theorem lift_div_le: â\88\80d1,e1,T1,T. â\87§[d1, e1] T1 ≡ T →
+                     â\88\80d2,e2,T2. â\87§[d2 + e1, e2] T2 ≡ T →
                      d1 ≤ d2 →
-                     â\88\83â\88\83T0. â\87\91[d1, e1] T0 â\89¡ T2 & â\87\91[d2, e2] T0 ≡ T1.
+                     â\88\83â\88\83T0. â\87§[d1, e1] T0 â\89¡ T2 & â\87§[d2, e2] T0 ≡ T1.
 #d1 #e1 #T1 #T #H elim H -d1 -e1 -T1 -T
 [ #k #d1 #e1 #d2 #e2 #T2 #Hk #Hd12
   lapply (lift_inv_sort2 … Hk) -Hk #Hk destruct /3 width=3/
@@ -70,10 +70,10 @@ theorem lift_div_le: ∀d1,e1,T1,T. ⇑[d1, e1] T1 ≡ T →
 qed.
 
 (* Note: apparently this was missing in Basic_1 *)
-theorem lift_div_be: â\88\80d1,e1,T1,T. â\87\91[d1, e1] T1 ≡ T →
-                     â\88\80e,e2,T2. â\87\91[d1 + e, e2] T2 ≡ T →
+theorem lift_div_be: â\88\80d1,e1,T1,T. â\87§[d1, e1] T1 ≡ T →
+                     â\88\80e,e2,T2. â\87§[d1 + e, e2] T2 ≡ T →
                      e ≤ e1 → e1 ≤ e + e2 →
-                     â\88\83â\88\83T0. â\87\91[d1, e] T0 â\89¡ T2 & â\87\91[d1, e + e2 - e1] T0 ≡ T1.
+                     â\88\83â\88\83T0. â\87§[d1, e] T0 â\89¡ T2 & â\87§[d1, e + e2 - e1] T0 ≡ T1.
 #d1 #e1 #T1 #T #H elim H -d1 -e1 -T1 -T
 [ #k #d1 #e1 #e #e2 #T2 #H >(lift_inv_sort2 … H) -H /2 width=3/
 | #i #d1 #e1 #Hid1 #e #e2 #T2 #H #He1 #He1e2
@@ -99,7 +99,7 @@ theorem lift_div_be: ∀d1,e1,T1,T. ⇑[d1, e1] T1 ≡ T →
 ]
 qed.
 
-theorem lift_mono: â\88\80d,e,T,U1. â\87\91[d,e] T â\89¡ U1 â\86\92 â\88\80U2. â\87\91[d,e] T ≡ U2 → U1 = U2.
+theorem lift_mono: â\88\80d,e,T,U1. â\87§[d,e] T â\89¡ U1 â\86\92 â\88\80U2. â\87§[d,e] T ≡ U2 → U1 = U2.
 #d #e #T #U1 #H elim H -d -e -T -U1
 [ #k #d #e #X #HX
   lapply (lift_inv_sort1 … HX) -HX //
@@ -117,9 +117,9 @@ theorem lift_mono: ∀d,e,T,U1. ⇑[d,e] T ≡ U1 → ∀U2. ⇑[d,e] T ≡ U2 
 qed-.
 
 (* Basic_1: was: lift_free (left to right) *)
-theorem lift_trans_be: â\88\80d1,e1,T1,T. â\87\91[d1, e1] T1 ≡ T →
-                       â\88\80d2,e2,T2. â\87\91[d2, e2] T ≡ T2 →
-                       d1 â\89¤ d2 â\86\92 d2 â\89¤ d1 + e1 â\86\92 â\87\91[d1, e1 + e2] T1 ≡ T2.
+theorem lift_trans_be: â\88\80d1,e1,T1,T. â\87§[d1, e1] T1 ≡ T →
+                       â\88\80d2,e2,T2. â\87§[d2, e2] T ≡ T2 →
+                       d1 â\89¤ d2 â\86\92 d2 â\89¤ d1 + e1 â\86\92 â\87§[d1, e1 + e2] T1 ≡ T2.
 #d1 #e1 #T1 #T #H elim H -d1 -e1 -T1 -T
 [ #k #d1 #e1 #d2 #e2 #T2 #HT2 #_ #_
   >(lift_inv_sort1 … HT2) -HT2 //
@@ -145,9 +145,9 @@ theorem lift_trans_be: ∀d1,e1,T1,T. ⇑[d1, e1] T1 ≡ T →
 qed.
 
 (* Basic_1: was: lift_d (right to left) *)
-theorem lift_trans_le: â\88\80d1,e1,T1,T. â\87\91[d1, e1] T1 ≡ T →
-                       â\88\80d2,e2,T2. â\87\91[d2, e2] T ≡ T2 → d2 ≤ d1 →
-                       â\88\83â\88\83T0. â\87\91[d2, e2] T1 â\89¡ T0 & â\87\91[d1 + e2, e1] T0 ≡ T2.
+theorem lift_trans_le: â\88\80d1,e1,T1,T. â\87§[d1, e1] T1 ≡ T →
+                       â\88\80d2,e2,T2. â\87§[d2, e2] T ≡ T2 → d2 ≤ d1 →
+                       â\88\83â\88\83T0. â\87§[d2, e2] T1 â\89¡ T0 & â\87§[d1 + e2, e1] T0 ≡ T2.
 #d1 #e1 #T1 #T #H elim H -d1 -e1 -T1 -T
 [ #k #d1 #e1 #d2 #e2 #X #HX #_
   >(lift_inv_sort1 … HX) -HX /2 width=3/
@@ -172,9 +172,9 @@ theorem lift_trans_le: ∀d1,e1,T1,T. ⇑[d1, e1] T1 ≡ T →
 qed.
 
 (* Basic_1: was: lift_d (left to right) *)
-theorem lift_trans_ge: â\88\80d1,e1,T1,T. â\87\91[d1, e1] T1 ≡ T →
-                       â\88\80d2,e2,T2. â\87\91[d2, e2] T ≡ T2 → d1 + e1 ≤ d2 →
-                       â\88\83â\88\83T0. â\87\91[d2 - e1, e2] T1 â\89¡ T0 & â\87\91[d1, e1] T0 ≡ T2.
+theorem lift_trans_ge: â\88\80d1,e1,T1,T. â\87§[d1, e1] T1 ≡ T →
+                       â\88\80d2,e2,T2. â\87§[d2, e2] T ≡ T2 → d1 + e1 ≤ d2 →
+                       â\88\83â\88\83T0. â\87§[d2 - e1, e2] T1 â\89¡ T0 & â\87§[d1, e1] T0 ≡ T2.
 #d1 #e1 #T1 #T #H elim H -d1 -e1 -T1 -T
 [ #k #d1 #e1 #d2 #e2 #X #HX #_
   >(lift_inv_sort1 … HX) -HX /2 width=3/
index 2f7c9bbc5e142cfcbe417f46968de98322035442..ef422bdd4bc41eef2f93dc20184833c7099b8162 100644 (file)
@@ -20,7 +20,7 @@ include "Basic_2/substitution/lift.ma".
 inductive liftv (d,e:nat) : relation (list term) ≝
 | liftv_nil : liftv d e ◊ ◊
 | liftv_cons: ∀T1s,T2s,T1,T2.
-              â\87\91[d, e] T1 ≡ T2 → liftv d e T1s T2s →
+              â\87§[d, e] T1 ≡ T2 → liftv d e T1s T2s →
               liftv d e (T1 :: T1s) (T2 :: T2s)
 .
 
@@ -28,7 +28,7 @@ interpretation "relocation (vector)" 'RLift d e T1s T2s = (liftv d e T1s T2s).
 
 (* Basic properties *********************************************************)
 
-lemma liftv_total: â\88\80d,e. â\88\80T1s:list term. â\88\83T2s. â\87\91[d, e] T1s ≡ T2s.
+lemma liftv_total: â\88\80d,e. â\88\80T1s:list term. â\88\83T2s. â\87§[d, e] T1s ≡ T2s.
 #d #e #T1s elim T1s -T1s
 [ /2 width=2/
 | #T1 #T1s * #T2s #HT12s
index c804efa415469e9a2ab30fa58c02f26af4d61caa..9adf787100d1d1ca509bd35268a8223a9871b05c 100644 (file)
@@ -21,10 +21,10 @@ inductive ltps: nat → nat → relation lenv ≝
 | ltps_atom: ∀d,e. ltps d e (⋆) (⋆)
 | ltps_pair: ∀L,I,V. ltps 0 0 (L. 𝕓{I} V) (L. 𝕓{I} V)
 | ltps_tps2: ∀L1,L2,I,V1,V2,e.
-             ltps 0 e L1 L2 â\86\92 L2 â\8a¢ V1 [0, e] â\89« V2 →
+             ltps 0 e L1 L2 â\86\92 L2 â\8a¢ V1 [0, e] â\96 V2 →
              ltps 0 (e + 1) (L1. 𝕓{I} V1) L2. 𝕓{I} V2
 | ltps_tps1: ∀L1,L2,I,V1,V2,d,e.
-             ltps d e L1 L2 â\86\92 L2 â\8a¢ V1 [d, e] â\89« V2 →
+             ltps d e L1 L2 â\86\92 L2 â\8a¢ V1 [d, e] â\96 V2 →
              ltps (d + 1) e (L1. 𝕓{I} V1) (L2. 𝕓{I} V2)
 .
 
@@ -34,28 +34,28 @@ interpretation "parallel substritution (local environment)"
 (* Basic properties *********************************************************)
 
 lemma ltps_tps2_lt: ∀L1,L2,I,V1,V2,e.
-                    L1 [0, e - 1] â\89« L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\89« V2 →
-                    0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\89« L2. 𝕓{I} V2.
+                    L1 [0, e - 1] â\96¶ L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\96 V2 →
+                    0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\96 L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #e #HL12 #HV12 #He
 >(plus_minus_m_m e 1) /2 width=1/
 qed.
 
 lemma ltps_tps1_lt: ∀L1,L2,I,V1,V2,d,e.
-                    L1 [d - 1, e] â\89« L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\89« V2 →
-                    0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\89« L2. 𝕓{I} V2.
+                    L1 [d - 1, e] â\96¶ L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\96 V2 →
+                    0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\96 L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #d #e #HL12 #HV12 #Hd
 >(plus_minus_m_m d 1) /2 width=1/
 qed.
 
 (* Basic_1: was by definition: csubst1_refl *)
-lemma ltps_refl: â\88\80L,d,e. L [d, e] â\89« L.
+lemma ltps_refl: â\88\80L,d,e. L [d, e] â\96 L.
 #L elim L -L //
 #L #I #V #IHL * /2 width=1/ * /2 width=1/
 qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact ltps_inv_refl_O2_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → e = 0 → L1 = L2.
+fact ltps_inv_refl_O2_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → e = 0 → L1 = L2.
 #d #e #L1 #L2 #H elim H -d -e -L1 -L2 //
 [ #L1 #L2 #I #V1 #V2 #e #_ #_ #_ >commutative_plus normalize #H destruct
 | #L1 #L2 #I #V1 #V2 #d #e #_ #HV12 #IHL12 #He destruct
@@ -63,11 +63,11 @@ fact ltps_inv_refl_O2_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → e = 0 → L1 = L2.
 ]
 qed.
 
-lemma ltps_inv_refl_O2: â\88\80d,L1,L2. L1 [d, 0] â\89« L2 → L1 = L2.
+lemma ltps_inv_refl_O2: â\88\80d,L1,L2. L1 [d, 0] â\96 L2 → L1 = L2.
 /2 width=4/ qed-.
 
 fact ltps_inv_atom1_aux: ∀d,e,L1,L2.
-                         L1 [d, e] â\89« L2 → L1 = ⋆ → L2 = ⋆.
+                         L1 [d, e] â\96 L2 → L1 = ⋆ → L2 = ⋆.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ //
 | #L #I #V #H destruct
@@ -76,13 +76,13 @@ fact ltps_inv_atom1_aux: ∀d,e,L1,L2.
 ]
 qed.
 
-lemma ltps_inv_atom1: â\88\80d,e,L2. â\8b\86 [d, e] â\89« L2 → L2 = ⋆.
+lemma ltps_inv_atom1: â\88\80d,e,L2. â\8b\86 [d, e] â\96 L2 → L2 = ⋆.
 /2 width=5/ qed-.
 
-fact ltps_inv_tps21_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → d = 0 → 0 < e →
+fact ltps_inv_tps21_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → d = 0 → 0 < e →
                          ∀K1,I,V1. L1 = K1. 𝕓{I} V1 →
-                         â\88\83â\88\83K2,V2. K1 [0, e - 1] â\89« K2 &
-                                  K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+                         â\88\83â\88\83K2,V2. K1 [0, e - 1] â\96 K2 &
+                                  K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                   L2 = K2. 𝕓{I} V2.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #_ #K1 #I #V1 #H destruct
@@ -92,15 +92,15 @@ fact ltps_inv_tps21_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → d = 0 → 0 < e →
 ]
 qed.
 
-lemma ltps_inv_tps21: â\88\80e,K1,I,V1,L2. K1. ð\9d\95\93{I} V1 [0, e] â\89« L2 → 0 < e →
-                      â\88\83â\88\83K2,V2. K1 [0, e - 1] â\89« K2 & K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+lemma ltps_inv_tps21: â\88\80e,K1,I,V1,L2. K1. ð\9d\95\93{I} V1 [0, e] â\96 L2 → 0 < e →
+                      â\88\83â\88\83K2,V2. K1 [0, e - 1] â\96¶ K2 & K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                L2 = K2. 𝕓{I} V2.
 /2 width=5/ qed-.
 
-fact ltps_inv_tps11_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → 0 < d →
+fact ltps_inv_tps11_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → 0 < d →
                          ∀I,K1,V1. L1 = K1. 𝕓{I} V1 →
-                         â\88\83â\88\83K2,V2. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+                         â\88\83â\88\83K2,V2. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L2 = K2. 𝕓{I} V2.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K1 #V1 #H destruct
@@ -110,14 +110,14 @@ fact ltps_inv_tps11_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → 0 < d →
 ]
 qed.
 
-lemma ltps_inv_tps11: â\88\80d,e,I,K1,V1,L2. K1. ð\9d\95\93{I} V1 [d, e] â\89« L2 → 0 < d →
-                      â\88\83â\88\83K2,V2. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+lemma ltps_inv_tps11: â\88\80d,e,I,K1,V1,L2. K1. ð\9d\95\93{I} V1 [d, e] â\96 L2 → 0 < d →
+                      â\88\83â\88\83K2,V2. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L2 = K2. 𝕓{I} V2.
 /2 width=3/ qed-.
 
 fact ltps_inv_atom2_aux: ∀d,e,L1,L2.
-                         L1 [d, e] â\89« L2 → L2 = ⋆ → L1 = ⋆.
+                         L1 [d, e] â\96 L2 → L2 = ⋆ → L1 = ⋆.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ //
 | #L #I #V #H destruct
@@ -126,13 +126,13 @@ fact ltps_inv_atom2_aux: ∀d,e,L1,L2.
 ]
 qed.
 
-lemma ltps_inv_atom2: â\88\80d,e,L1. L1 [d, e] â\89« ⋆ → L1 = ⋆.
+lemma ltps_inv_atom2: â\88\80d,e,L1. L1 [d, e] â\96 ⋆ → L1 = ⋆.
 /2 width=5/ qed-.
 
-fact ltps_inv_tps22_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → d = 0 → 0 < e →
+fact ltps_inv_tps22_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → d = 0 → 0 < e →
                          ∀K2,I,V2. L2 = K2. 𝕓{I} V2 →
-                         â\88\83â\88\83K1,V1. K1 [0, e - 1] â\89« K2 &
-                                  K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+                         â\88\83â\88\83K1,V1. K1 [0, e - 1] â\96 K2 &
+                                  K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #_ #K1 #I #V1 #H destruct
@@ -142,15 +142,15 @@ fact ltps_inv_tps22_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → d = 0 → 0 < e →
 ]
 qed.
 
-lemma ltps_inv_tps22: â\88\80e,L1,K2,I,V2. L1 [0, e] â\89« K2. 𝕓{I} V2 → 0 < e →
-                      â\88\83â\88\83K1,V1. K1 [0, e - 1] â\89« K2 & K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+lemma ltps_inv_tps22: â\88\80e,L1,K2,I,V2. L1 [0, e] â\96 K2. 𝕓{I} V2 → 0 < e →
+                      â\88\83â\88\83K1,V1. K1 [0, e - 1] â\96¶ K2 & K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                L1 = K1. 𝕓{I} V1.
 /2 width=5/ qed-.
 
-fact ltps_inv_tps12_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → 0 < d →
+fact ltps_inv_tps12_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → 0 < d →
                          ∀I,K2,V2. L2 = K2. 𝕓{I} V2 →
-                         â\88\83â\88\83K1,V1. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+                         â\88\83â\88\83K1,V1. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K2 #V2 #H destruct
@@ -160,9 +160,9 @@ fact ltps_inv_tps12_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → 0 < d →
 ]
 qed.
 
-lemma ltps_inv_tps12: â\88\80L1,K2,I,V2,d,e. L1 [d, e] â\89« K2. 𝕓{I} V2 → 0 < d →
-                      â\88\83â\88\83K1,V1. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+lemma ltps_inv_tps12: â\88\80L1,K2,I,V2,d,e. L1 [d, e] â\96 K2. 𝕓{I} V2 → 0 < d →
+                      â\88\83â\88\83K1,V1. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 /2 width=3/ qed-.
 
index 11745b425933c707eeeea6025c9bcc28b3be2ef8..bf4e1f7117d82104fe9e47bbe9911a0916f2ce4f 100644 (file)
@@ -16,9 +16,9 @@ include "Basic_2/substitution/ltps.ma".
 
 (* PARALLEL SUBSTITUTION ON LOCAL ENVIRONMENTS ******************************)
 
-lemma ltps_ldrop_conf_ge: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89« L1 →
-                          â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 →
-                          d1 + e1 â\89¤ e2 â\86\92 â\87\93[0, e2] L1 ≡ L2.
+lemma ltps_ldrop_conf_ge: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96 L1 →
+                          â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 →
+                          d1 + e1 â\89¤ e2 â\86\92 â\87©[0, e2] L1 ≡ L2.
 #L0 #L1 #d1 #e1 #H elim H -L0 -L1 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H //
 | //
@@ -33,9 +33,9 @@ lemma ltps_ldrop_conf_ge: ∀L0,L1,d1,e1. L0 [d1, e1] ≫ L1 →
 ]
 qed.
 
-lemma ltps_ldrop_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89« L0 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 →
-                           d1 + e1 â\89¤ e2 â\86\92 â\87\93[0, e2] L1 ≡ L2.
+lemma ltps_ldrop_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96 L0 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 →
+                           d1 + e1 â\89¤ e2 â\86\92 â\87©[0, e2] L1 ≡ L2.
 #L1 #L0 #d1 #e1 #H elim H -L1 -L0 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H //
 | //
@@ -50,9 +50,9 @@ lemma ltps_ldrop_trans_ge: ∀L1,L0,d1,e1. L1 [d1, e1] ≫ L0 →
 ]
 qed.
 
-lemma ltps_ldrop_conf_be: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89« L1 →
-                          â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
-                          â\88\83â\88\83L. L2 [0, d1 + e1 - e2] â\89« L & â\87\93[0, e2] L1 ≡ L.
+lemma ltps_ldrop_conf_be: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96 L1 →
+                          â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
+                          â\88\83â\88\83L. L2 [0, d1 + e1 - e2] â\96¶ L & â\87©[0, e2] L1 ≡ L.
 #L0 #L1 #d1 #e1 #H elim H -L0 -L1 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H /2 width=3/
 | normalize #L #I #V #L2 #e2 #HL2 #_ #He2
@@ -72,9 +72,9 @@ lemma ltps_ldrop_conf_be: ∀L0,L1,d1,e1. L0 [d1, e1] ≫ L1 →
 ]
 qed.
 
-lemma ltps_ldrop_trans_be: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89« L0 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
-                           â\88\83â\88\83L. L [0, d1 + e1 - e2] â\89« L2 & â\87\93[0, e2] L1 ≡ L.
+lemma ltps_ldrop_trans_be: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96 L0 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
+                           â\88\83â\88\83L. L [0, d1 + e1 - e2] â\96¶ L2 & â\87©[0, e2] L1 ≡ L.
 #L1 #L0 #d1 #e1 #H elim H -L1 -L0 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H /2 width=3/
 | normalize #L #I #V #L2 #e2 #HL2 #_ #He2
@@ -94,9 +94,9 @@ lemma ltps_ldrop_trans_be: ∀L1,L0,d1,e1. L1 [d1, e1] ≫ L0 →
 ]
 qed.
 
-lemma ltps_ldrop_conf_le: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89« L1 →
-                          â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → e2 ≤ d1 →
-                          â\88\83â\88\83L. L2 [d1 - e2, e1] â\89« L & â\87\93[0, e2] L1 ≡ L.
+lemma ltps_ldrop_conf_le: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96 L1 →
+                          â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → e2 ≤ d1 →
+                          â\88\83â\88\83L. L2 [d1 - e2, e1] â\96¶ L & â\87©[0, e2] L1 ≡ L.
 #L0 #L1 #d1 #e1 #H elim H -L0 -L1 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H /2 width=3/
 | /2 width=3/
@@ -112,9 +112,9 @@ lemma ltps_ldrop_conf_le: ∀L0,L1,d1,e1. L0 [d1, e1] ≫ L1 →
 ]
 qed.
 
-lemma ltps_ldrop_trans_le: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89« L0 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → e2 ≤ d1 →
-                           â\88\83â\88\83L. L [d1 - e2, e1] â\89« L2 & â\87\93[0, e2] L1 ≡ L.
+lemma ltps_ldrop_trans_le: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96 L0 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → e2 ≤ d1 →
+                           â\88\83â\88\83L. L [d1 - e2, e1] â\96¶ L2 & â\87©[0, e2] L1 ≡ L.
 #L1 #L0 #d1 #e1 #H elim H -L1 -L0 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H >(ldrop_inv_atom1 … H) -H /2 width=3/
 | /2 width=3/
index 8bf9f197d38c57045a340fb73e06c9216ef82aa1..473f813b6aafb5fa283be7ecce7883ff557d56b2 100644 (file)
@@ -17,9 +17,9 @@ include "Basic_2/substitution/ltps_ldrop.ma".
 
 (* PARALLEL SUBSTITUTION ON LOCAL ENVIRONMENTS ******************************)
 
-lemma ltps_tps_conf_ge: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89« U2 →
-                        â\88\80L1,d1,e1. L0 [d1, e1] â\89« L1 → d1 + e1 ≤ d2 →
-                        L1 â\8a¢ T2 [d2, e2] â\89« U2.
+lemma ltps_tps_conf_ge: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96 U2 →
+                        â\88\80L1,d1,e1. L0 [d1, e1] â\96 L1 → d1 + e1 ≤ d2 →
+                        L1 â\8a¢ T2 [d2, e2] â\96 U2.
 #L0 #T2 #U2 #d2 #e2 #H elim H -L0 -T2 -U2 -d2 -e2
 [ //
 | #L0 #K0 #V0 #W0 #i2 #d2 #e2 #Hdi2 #Hide2 #HLK0 #HVW0 #L1 #d1 #e1 #HL01 #Hde1d2
@@ -32,10 +32,10 @@ lemma ltps_tps_conf_ge: ∀L0,T2,U2,d2,e2. L0 ⊢ T2 [d2, e2] ≫ U2 →
 qed.
 
 (* Basic_1: was: subst1_subst1_back *)
-lemma ltps_tps_conf: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89« U2 →
-                     â\88\80L1,d1,e1. L0 [d1, e1] â\89« L1 →
-                     â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\89« T &
-                          L1 â\8a¢ U2 [d1, e1] â\89« T.
+lemma ltps_tps_conf: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96 U2 →
+                     â\88\80L1,d1,e1. L0 [d1, e1] â\96 L1 →
+                     â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\96 T &
+                          L1 â\8a¢ U2 [d1, e1] â\96 T.
 #L0 #T2 #U2 #d2 #e2 #H elim H -L0 -T2 -U2 -d2 -e2
 [ /2 width=3/
 | #L0 #K0 #V0 #W0 #i2 #d2 #e2 #Hdi2 #Hide2 #HLK0 #HVW0 #L1 #d1 #e1 #HL01
@@ -64,9 +64,9 @@ lemma ltps_tps_conf: ∀L0,T2,U2,d2,e2. L0 ⊢ T2 [d2, e2] ≫ U2 →
 ]
 qed.
 
-lemma ltps_tps_trans_ge: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89« U2 →
-                         â\88\80L1,d1,e1. L1 [d1, e1] â\89« L0 → d1 + e1 ≤ d2 →
-                         L1 â\8a¢ T2 [d2, e2] â\89« U2.
+lemma ltps_tps_trans_ge: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96 U2 →
+                         â\88\80L1,d1,e1. L1 [d1, e1] â\96 L0 → d1 + e1 ≤ d2 →
+                         L1 â\8a¢ T2 [d2, e2] â\96 U2.
 #L0 #T2 #U2 #d2 #e2 #H elim H -L0 -T2 -U2 -d2 -e2
 [ //
 | #L0 #K0 #V0 #W0 #i2 #d2 #e2 #Hdi2 #Hide2 #HLK0 #HVW0 #L1 #d1 #e1 #HL10 #Hde1d2
@@ -79,10 +79,10 @@ lemma ltps_tps_trans_ge: ∀L0,T2,U2,d2,e2. L0 ⊢ T2 [d2, e2] ≫ U2 →
 qed.
 
 (* Basic_1: was: subst1_subst1 *)
-lemma ltps_tps_trans: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89« U2 →
-                      â\88\80L1,d1,e1. L1 [d1, e1] â\89« L0 →
-                      â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\89« T &
-                           L0 â\8a¢ T [d1, e1] â\89« U2.
+lemma ltps_tps_trans: â\88\80L0,T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96 U2 →
+                      â\88\80L1,d1,e1. L1 [d1, e1] â\96 L0 →
+                      â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\96 T &
+                           L0 â\8a¢ T [d1, e1] â\96 U2.
 #L0 #T2 #U2 #d2 #e2 #H elim H -L0 -T2 -U2 -d2 -e2
 [ /2 width=3/
 | #L0 #K0 #V0 #W0 #i2 #d2 #e2 #Hdi2 #Hide2 #HLK0 #HVW0 #L1 #d1 #e1 #HL10
index df69749cd69c6b11a3d4ac983573a10e7d8bab68..8a5dc13d083afa67e25924771bdb769e7b881d04 100644 (file)
@@ -20,7 +20,7 @@ include "Basic_2/substitution/ldrop.ma".
 inductive tps: nat → nat → lenv → relation term ≝
 | tps_atom : ∀L,I,d,e. tps d e L (𝕒{I}) (𝕒{I})
 | tps_subst: ∀L,K,V,W,i,d,e. d ≤ i → i < d + e →
-             â\87\93[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V â\86\92 â\87\91[0, i + 1] V ≡ W → tps d e L (#i) W
+             â\87©[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V â\86\92 â\87§[0, i + 1] V ≡ W → tps d e L (#i) W
 | tps_bind : ∀L,I,V1,V2,T1,T2,d,e.
              tps d e L V1 V2 → tps (d + 1) e (L. 𝕓{I} V2) T1 T2 →
              tps d e L (𝕓{I} V1. T1) (𝕓{I} V2. T2)
@@ -34,8 +34,8 @@ interpretation "parallel substritution (term)"
 
 (* Basic properties *********************************************************)
 
-lemma tps_lsubs_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\89« T2 →
-                      â\88\80L2. L1 [d, e] â\89¼ L2 â\86\92 L2 â\8a¢ T1 [d, e] â\89« T2.
+lemma tps_lsubs_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\96 T2 →
+                      â\88\80L2. L1 [d, e] â\89¼ L2 â\86\92 L2 â\8a¢ T1 [d, e] â\96 T2.
 #L1 #T1 #T2 #d #e #H elim H -L1 -T1 -T2 -d -e
 [ //
 | #L1 #K1 #V #W #i #d #e #Hdi #Hide #HLK1 #HVW #L2 #HL12
@@ -45,14 +45,14 @@ lemma tps_lsubs_conf: ∀L1,T1,T2,d,e. L1 ⊢ T1 [d, e] ≫ T2 →
 ]
 qed.
 
-lemma tps_refl: â\88\80T,L,d,e. L â\8a¢ T [d, e] â\89« T.
+lemma tps_refl: â\88\80T,L,d,e. L â\8a¢ T [d, e] â\96 T.
 #T elim T -T //
 #I elim I -I /2 width=1/
 qed.
 
 (* Basic_1: was: subst1_ex *)
-lemma tps_full: â\88\80K,V,T1,L,d. â\87\93[0, d] L ≡ (K. 𝕓{Abbr} V) →
-                â\88\83â\88\83T2,T. L â\8a¢ T1 [d, 1] â\89« T2 & â\87\91[d, 1] T ≡ T2.
+lemma tps_full: â\88\80K,V,T1,L,d. â\87©[0, d] L ≡ (K. 𝕓{Abbr} V) →
+                â\88\83â\88\83T2,T. L â\8a¢ T1 [d, 1] â\96¶ T2 & â\87§[d, 1] T ≡ T2.
 #K #V #T1 elim T1 -T1
 [ * #i #L #d #HLK /2 width=4/
   elim (lt_or_eq_or_gt i d) #Hid /3 width=4/
@@ -67,9 +67,9 @@ lemma tps_full: ∀K,V,T1,L,d. ⇓[0, d] L ≡ (K. 𝕓{Abbr} V) →
 ]
 qed.
 
-lemma tps_weak: â\88\80L,T1,T2,d1,e1. L â\8a¢ T1 [d1, e1] â\89« T2 →
+lemma tps_weak: â\88\80L,T1,T2,d1,e1. L â\8a¢ T1 [d1, e1] â\96 T2 →
                 ∀d2,e2. d2 ≤ d1 → d1 + e1 ≤ d2 + e2 →
-                L â\8a¢ T1 [d2, e2] â\89« T2.
+                L â\8a¢ T1 [d2, e2] â\96 T2.
 #L #T1 #T2 #d1 #e1 #H elim H -L -T1 -T2 -d1 -e1
 [ //
 | #L #K #V #W #i #d1 #e1 #Hid1 #Hide1 #HLK #HVW #d2 #e2 #Hd12 #Hde12
@@ -81,7 +81,7 @@ lemma tps_weak: ∀L,T1,T2,d1,e1. L ⊢ T1 [d1, e1] ≫ T2 →
 qed.
 
 lemma tps_weak_top: ∀L,T1,T2,d,e.
-                    L â\8a¢ T1 [d, e] â\89« T2 â\86\92 L â\8a¢ T1 [d, |L| - d] â\89« T2.
+                    L â\8a¢ T1 [d, e] â\96¶ T2 â\86\92 L â\8a¢ T1 [d, |L| - d] â\96 T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e
 [ //
 | #L #K #V #W #i #d #e #Hdi #_ #HLK #HVW
@@ -93,14 +93,14 @@ lemma tps_weak_top: ∀L,T1,T2,d,e.
 qed.
 
 lemma tps_weak_all: ∀L,T1,T2,d,e.
-                    L â\8a¢ T1 [d, e] â\89« T2 â\86\92 L â\8a¢ T1 [0, |L|] â\89« T2.
+                    L â\8a¢ T1 [d, e] â\96¶ T2 â\86\92 L â\8a¢ T1 [0, |L|] â\96 T2.
 #L #T1 #T2 #d #e #HT12
 lapply (tps_weak … HT12 0 (d + e) ? ?) -HT12 // #HT12
 lapply (tps_weak_top … HT12) //
 qed.
 
-lemma tps_split_up: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → ∀i. d ≤ i → i ≤ d + e →
-                    â\88\83â\88\83T. L â\8a¢ T1 [d, i - d] â\89« T & L â\8a¢ T [i, d + e - i] â\89« T2.
+lemma tps_split_up: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96 T2 → ∀i. d ≤ i → i ≤ d + e →
+                    â\88\83â\88\83T. L â\8a¢ T1 [d, i - d] â\96¶ T & L â\8a¢ T [i, d + e - i] â\96 T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e
 [ /2 width=3/
 | #L #K #V #W #i #d #e #Hdi #Hide #HLK #HVW #j #Hdj #Hjde
@@ -124,11 +124,11 @@ qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact tps_inv_atom1_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → ∀I. T1 = 𝕒{I} →
+fact tps_inv_atom1_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96 T2 → ∀I. T1 = 𝕒{I} →
                         T2 = 𝕒{I} ∨
                         ∃∃K,V,i. d ≤ i & i < d + e &
-                                 â\87\93[O, i] L ≡ K. 𝕓{Abbr} V &
-                                 â\87\91[O, i + 1] V ≡ T2 &
+                                 â\87©[O, i] L ≡ K. 𝕓{Abbr} V &
+                                 â\87§[O, i + 1] V ≡ T2 &
                                  I = LRef i.
 #L #T1 #T2 #d #e * -L -T1 -T2 -d -e
 [ #L #I #d #e #J #H destruct /2 width=1/
@@ -138,43 +138,43 @@ fact tps_inv_atom1_aux: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫ T2 → ∀I. T1 = 
 ]
 qed.
 
-lemma tps_inv_atom1: â\88\80L,T2,I,d,e. L â\8a¢ ð\9d\95\92{I} [d, e] â\89« T2 →
+lemma tps_inv_atom1: â\88\80L,T2,I,d,e. L â\8a¢ ð\9d\95\92{I} [d, e] â\96 T2 →
                      T2 = 𝕒{I} ∨
                      ∃∃K,V,i. d ≤ i & i < d + e &
-                              â\87\93[O, i] L ≡ K. 𝕓{Abbr} V &
-                              â\87\91[O, i + 1] V ≡ T2 &
+                              â\87©[O, i] L ≡ K. 𝕓{Abbr} V &
+                              â\87§[O, i + 1] V ≡ T2 &
                               I = LRef i.
 /2 width=3/ qed-.
 
 
 (* Basic_1: was: subst1_gen_sort *)
-lemma tps_inv_sort1: â\88\80L,T2,k,d,e. L â\8a¢ â\8b\86k [d, e] â\89« T2 → T2 = ⋆k.
+lemma tps_inv_sort1: â\88\80L,T2,k,d,e. L â\8a¢ â\8b\86k [d, e] â\96 T2 → T2 = ⋆k.
 #L #T2 #k #d #e #H
 elim (tps_inv_atom1 … H) -H //
 * #K #V #i #_ #_ #_ #_ #H destruct
 qed-.
 
 (* Basic_1: was: subst1_gen_lref *)
-lemma tps_inv_lref1: â\88\80L,T2,i,d,e. L â\8a¢ #i [d, e] â\89« T2 →
+lemma tps_inv_lref1: â\88\80L,T2,i,d,e. L â\8a¢ #i [d, e] â\96 T2 →
                      T2 = #i ∨
                      ∃∃K,V. d ≤ i & i < d + e &
-                            â\87\93[O, i] L ≡ K. 𝕓{Abbr} V &
-                            â\87\91[O, i + 1] V ≡ T2.
+                            â\87©[O, i] L ≡ K. 𝕓{Abbr} V &
+                            â\87§[O, i + 1] V ≡ T2.
 #L #T2 #i #d #e #H
 elim (tps_inv_atom1 … H) -H /2 width=1/
 * #K #V #j #Hdj #Hjde #HLK #HVT2 #H destruct /3 width=4/
 qed-.
 
-lemma tps_inv_gref1: â\88\80L,T2,p,d,e. L â\8a¢ Â§p [d, e] â\89« T2 → T2 = §p.
+lemma tps_inv_gref1: â\88\80L,T2,p,d,e. L â\8a¢ Â§p [d, e] â\96 T2 → T2 = §p.
 #L #T2 #p #d #e #H
 elim (tps_inv_atom1 … H) -H //
 * #K #V #i #_ #_ #_ #_ #H destruct
 qed-.
 
-fact tps_inv_bind1_aux: â\88\80d,e,L,U1,U2. L â\8a¢ U1 [d, e] â\89« U2 →
+fact tps_inv_bind1_aux: â\88\80d,e,L,U1,U2. L â\8a¢ U1 [d, e] â\96 U2 →
                         ∀I,V1,T1. U1 = 𝕓{I} V1. T1 →
-                        â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89« V2 & 
-                                 L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\89« T2 &
+                        â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96 V2 & 
+                                 L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\96 T2 &
                                  U2 =  𝕓{I} V2. T2.
 #d #e #L #U1 #U2 * -d -e -L -U1 -U2
 [ #L #k #d #e #I #V1 #T1 #H destruct
@@ -184,15 +184,15 @@ fact tps_inv_bind1_aux: ∀d,e,L,U1,U2. L ⊢ U1 [d, e] ≫ U2 →
 ]
 qed.
 
-lemma tps_inv_bind1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\89« U2 →
-                     â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89« V2 & 
-                              L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\89« T2 &
+lemma tps_inv_bind1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\96 U2 →
+                     â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96 V2 & 
+                              L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\96 T2 &
                               U2 =  𝕓{I} V2. T2.
 /2 width=3/ qed-.
 
-fact tps_inv_flat1_aux: â\88\80d,e,L,U1,U2. L â\8a¢ U1 [d, e] â\89« U2 →
+fact tps_inv_flat1_aux: â\88\80d,e,L,U1,U2. L â\8a¢ U1 [d, e] â\96 U2 →
                         ∀I,V1,T1. U1 = 𝕗{I} V1. T1 →
-                        â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89« V2 & L â\8a¢ T1 [d, e] â\89« T2 &
+                        â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96¶ V2 & L â\8a¢ T1 [d, e] â\96 T2 &
                                  U2 =  𝕗{I} V2. T2.
 #d #e #L #U1 #U2 * -d -e -L -U1 -U2
 [ #L #k #d #e #I #V1 #T1 #H destruct
@@ -202,12 +202,12 @@ fact tps_inv_flat1_aux: ∀d,e,L,U1,U2. L ⊢ U1 [d, e] ≫ U2 →
 ]
 qed.
 
-lemma tps_inv_flat1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\89« U2 →
-                     â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89« V2 & L â\8a¢ T1 [d, e] â\89« T2 &
+lemma tps_inv_flat1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\96 U2 →
+                     â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96¶ V2 & L â\8a¢ T1 [d, e] â\96 T2 &
                               U2 =  𝕗{I} V2. T2.
 /2 width=3/ qed-.
 
-fact tps_inv_refl_O2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → e = 0 → T1 = T2.
+fact tps_inv_refl_O2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96 T2 → e = 0 → T1 = T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e
 [ //
 | #L #K #V #W #i #d #e #Hdi #Hide #_ #_ #H destruct
@@ -218,12 +218,12 @@ fact tps_inv_refl_O2_aux: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫ T2 → e = 0 → T
 ]
 qed.
 
-lemma tps_inv_refl_O2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 0] â\89« T2 → T1 = T2.
+lemma tps_inv_refl_O2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 0] â\96 T2 → T1 = T2.
 /2 width=6/ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma tps_fwd_tw: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → #[T1] ≤ #[T2].
+lemma tps_fwd_tw: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96 T2 → #[T1] ≤ #[T2].
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e normalize
 /3 by monotonic_le_plus_l, le_plus/ (**) (* just /3 width=1/ is too slow *)
 qed-.
index 3b1453c37e951c657990f90e38d260ff9df131f2..78c324e4661382962b3df5076dc919dc3177f1de 100644 (file)
@@ -19,8 +19,8 @@ include "Basic_2/substitution/tps.ma".
 
 (* Advanced inversion lemmas ************************************************)
 
-fact tps_inv_refl_SO2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → e = 1 →
-                           â\88\80K,V. â\87\93[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
+fact tps_inv_refl_SO2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96 T2 → e = 1 →
+                           â\88\80K,V. â\87©[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e
 [ //
 | #L #K0 #V0 #W #i #d #e #Hdi #Hide #HLK0 #_ #H destruct
@@ -33,18 +33,18 @@ fact tps_inv_refl_SO2_aux: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫ T2 → e = 1 →
 ]
 qed.
 
-lemma tps_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\89« T2 →
-                        â\88\80K,V. â\87\93[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
+lemma tps_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\96 T2 →
+                        â\88\80K,V. â\87©[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
 /2 width=8/ qed-.
 
 (* Relocation properties ****************************************************)
 
 (* Basic_1: was: subst1_lift_lt *)
-lemma tps_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
-                   â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
-                   â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96 T2 →
+                   â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+                   â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
                    dt + et ≤ d →
-                   L â\8a¢ U1 [dt, et] â\89« U2.
+                   L â\8a¢ U1 [dt, et] â\96 U2.
 #K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
 [ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_
   >(lift_mono … H1 … H2) -H1 -H2 //
@@ -65,11 +65,11 @@ lemma tps_lift_le: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫ T2 →
 ]
 qed.
 
-lemma tps_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
-                   â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
-                   â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96 T2 →
+                   â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+                   â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
                    dt ≤ d → d ≤ dt + et →
-                   L â\8a¢ U1 [dt, et + e] â\89« U2.
+                   L â\8a¢ U1 [dt, et + e] â\96 U2.
 #K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
 [ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_ #_
   >(lift_mono … H1 … H2) -H1 -H2 //
@@ -98,11 +98,11 @@ lemma tps_lift_be: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫ T2 →
 qed.
 
 (* Basic_1: was: subst1_lift_ge *)
-lemma tps_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
-                   â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
-                   â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96 T2 →
+                   â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+                   â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
                    d ≤ dt →
-                   L â\8a¢ U1 [dt + e, et] â\89« U2.
+                   L â\8a¢ U1 [dt + e, et] â\96 U2.
 #K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
 [ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_
   >(lift_mono … H1 … H2) -H1 -H2 //
@@ -122,10 +122,10 @@ lemma tps_lift_ge: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫ T2 →
 qed.
 
 (* Basic_1: was: subst1_gen_lift_lt *)
-lemma tps_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
-                        â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96 U2 →
+                        â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                         dt + et ≤ d →
-                        â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+                        â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
 [ #L * #i #dt #et #K #d #e #_ #T1 #H #_
   [ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
@@ -149,10 +149,10 @@ lemma tps_inv_lift1_le: ∀L,U1,U2,dt,et. L ⊢ U1 [dt, et] ≫ U2 →
 ]
 qed.
 
-lemma tps_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
-                        â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96 U2 →
+                        â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                         dt ≤ d → d + e ≤ dt + et →
-                        â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+                        â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
 [ #L * #i #dt #et #K #d #e #_ #T1 #H #_
   [ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
@@ -187,10 +187,10 @@ lemma tps_inv_lift1_be: ∀L,U1,U2,dt,et. L ⊢ U1 [dt, et] ≫ U2 →
 qed.
 
 (* Basic_1: was: subst1_gen_lift_ge *)
-lemma tps_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
-                        â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96 U2 →
+                        â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                         d + e ≤ dt →
-                        â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+                        â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
 [ #L * #i #dt #et #K #d #e #_ #T1 #H #_
   [ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
@@ -221,7 +221,7 @@ qed.
 
 (* Basic_1: was: subst1_gen_lift_eq *)
 lemma tps_inv_lift1_eq: ∀L,U1,U2,d,e.
-                        L â\8a¢ U1 [d, e] â\89« U2 â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 → U1 = U2.
+                        L â\8a¢ U1 [d, e] â\96¶ U2 â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 → U1 = U2.
 #L #U1 #U2 #d #e #H elim H -L -U1 -U2 -d -e
 [ //
 | #L #K #V #W #i #d #e #Hdi #Hide #_ #_ #T1 #H
@@ -253,10 +253,10 @@ qed.
                                         (le d i) -> (lt i (plus d h)) ->
                                        (EX u1 | t1 = (lift (minus (plus d h) (S i)) (S i) u1)).
 *)
-lemma tps_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
-                        â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96 U2 →
+                        â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                         d ≤ dt → dt ≤ d + e → d + e ≤ dt + et →
-                        â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+                        â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #HU12 #K #d #e #HLK #T1 #HTU1 #Hddt #Hdtde #Hdedet
 elim (tps_split_up … HU12 (d + e) ? ?) -HU12 // -Hdedet #U #HU1 #HU2
 lapply (tps_weak … HU1 d e ? ?) -HU1 // [ >commutative_plus /2 width=1/ ] -Hddt -Hdtde #HU1
@@ -264,10 +264,10 @@ lapply (tps_inv_lift1_eq … HU1 … HTU1) -HU1 #HU1 destruct
 elim (tps_inv_lift1_ge … HU2 … HLK … HTU1 ?) -U -L // <minus_plus_m_m /2 width=3/
 qed.
 
-lemma tps_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
-                           â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96 U2 →
+                           â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                            dt ≤ d → dt + et ≤ d + e →
-                           â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+                           â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #HU12 #K #d #e #HLK #T1 #HTU1 #Hdtd #Hdetde
 lapply (tps_weak … HU12 dt (d + e - dt) ? ?) -HU12 // /2 width=3/ -Hdetde #HU12
 elim (tps_inv_lift1_be … HU12 … HLK … HTU1 ? ?) -U1 -L // /2 width=3/
index fcc59dc7410136d6d4f9da46a80a437c0bfe06b7..f4ee71857cbee73ba59dc5068dda914d87adf19d 100644 (file)
@@ -19,9 +19,9 @@ include "Basic_2/substitution/tps_lift.ma".
 (* Main properties **********************************************************)
 
 (* Basic_1: was: subst1_confluence_eq *)
-theorem tps_conf_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\89« T1 →
-                     â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89« T2 →
-                     â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89« T & L â\8a¢ T2 [d1, e1] â\89« T.
+theorem tps_conf_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\96 T1 →
+                     â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96 T2 →
+                     â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶ T & L â\8a¢ T2 [d1, e1] â\96 T.
 #L #T0 #T1 #d1 #e1 #H elim H -L -T0 -T1 -d1 -e1
 [ /2 width=3/
 | #L #K1 #V1 #T1 #i0 #d1 #e1 #Hd1 #Hde1 #HLK1 #HVT1 #T2 #d2 #e2 #H
@@ -46,10 +46,10 @@ theorem tps_conf_eq: ∀L,T0,T1,d1,e1. L ⊢ T0 [d1, e1] ≫ T1 →
 qed.
 
 (* Basic_1: was: subst1_confluence_neq *)
-theorem tps_conf_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\89« T1 →
-                      â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\89« T2 →
+theorem tps_conf_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\96 T1 →
+                      â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\96 T2 →
                       (d1 + e1 ≤ d2 ∨ d2 + e2 ≤ d1) →
-                      â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\89« T & L1 â\8a¢ T2 [d1, e1] â\89« T.
+                      â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\96¶ T & L1 â\8a¢ T2 [d1, e1] â\96 T.
 #L1 #T0 #T1 #d1 #e1 #H elim H -L1 -T0 -T1 -d1 -e1
 [ /2 width=3/
 | #L1 #K1 #V1 #T1 #i0 #d1 #e1 #Hd1 #Hde1 #HLK1 #HVT1 #L2 #T2 #d2 #e2 #H1 #H2
@@ -85,9 +85,9 @@ qed.
 
 (* Note: the constant 1 comes from tps_subst *)
 (* Basic_1: was: subst1_trans *)
-theorem tps_trans_ge: â\88\80L,T1,T0,d,e. L â\8a¢ T1 [d, e] â\89« T0 →
-                      â\88\80T2. L â\8a¢ T0 [d, 1] â\89« T2 → 1 ≤ e →
-                      L â\8a¢ T1 [d, e] â\89« T2.
+theorem tps_trans_ge: â\88\80L,T1,T0,d,e. L â\8a¢ T1 [d, e] â\96 T0 →
+                      â\88\80T2. L â\8a¢ T0 [d, 1] â\96 T2 → 1 ≤ e →
+                      L â\8a¢ T1 [d, e] â\96 T2.
 #L #T1 #T0 #d #e #H elim H -L -T1 -T0 -d -e
 [ #L #I #d #e #T2 #H #He
   elim (tps_inv_atom1 … H) -H
@@ -108,9 +108,9 @@ theorem tps_trans_ge: ∀L,T1,T0,d,e. L ⊢ T1 [d, e] ≫ T0 →
 ]
 qed.
 
-theorem tps_trans_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\89« T0 →
-                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89« T2 → d2 + e2 ≤ d1 →
-                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89« T & L â\8a¢ T [d1, e1] â\89« T2.
+theorem tps_trans_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\96 T0 →
+                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96 T2 → d2 + e2 ≤ d1 →
+                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶ T & L â\8a¢ T [d1, e1] â\96 T2.
 #L #T1 #T0 #d1 #e1 #H elim H -L -T1 -T0 -d1 -e1
 [ /2 width=3/
 | #L #K #V #W #i1 #d1 #e1 #Hdi1 #Hide1 #HLK #HVW #T2 #d2 #e2 #HWT2 #Hde2d1
index b068b5d334139ea32544d3b3efa77d573ae8c96d..895706ef691212a9612d11f232cc83772f674c65 100644 (file)
@@ -17,7 +17,7 @@ include "Basic_2/unfold/tpss.ma".
 (* DELIFT ON TERMS **********************************************************)
 
 definition delift: nat → nat → lenv → relation term ≝
-                   Î»d,e,L,T1,T2. â\88\83â\88\83T. L â\8a¢ T1 [d, e] â\89«* T & â\87\91[d, e] T2 ≡ T.
+                   Î»d,e,L,T1,T2. â\88\83â\88\83T. L â\8a¢ T1 [d, e] â\96¶* T & â\87§[d, e] T2 ≡ T.
 
 interpretation "delift (term)"
    'TSubst L T1 d e T2 = (delift d e L T1 T2).
index ae1a455429a51784fde5e0bd5f491bc2efedfb85..e725d65da31d9f110b833ccb67b4ffac4109fe03 100644 (file)
@@ -31,9 +31,9 @@ qed-.
 
 lemma delift_fwd_lref1_be: ∀L,U2,d,e,i. L ⊢ #i [d, e] ≡ U2 →
                            d ≤ i → i < d + e →
-                           â\88\83â\88\83K,V1,V2. â\87\93[0, i] L ≡ K. 𝕓{Abbr} V1 &
+                           â\88\83â\88\83K,V1,V2. â\87©[0, i] L ≡ K. 𝕓{Abbr} V1 &
                                       K ⊢ V1 [0, d + e - i - 1] ≡ V2 &
-                                      â\87\91[0, d] V2 ≡ U2.
+                                      â\87§[0, d] V2 ≡ U2.
 #L #U2 #d #e #i * #U #HU #HU2 #Hdi #Hide
 elim (tpss_inv_lref1 … HU) -HU
 [ #H destruct elim (lift_inv_lref2_be … HU2 ? ?) //
index 896415581910b592d23bf0e5875c5a23df1b2399..077bee1686b476ae370d4bc4471eb7d7f0f14597 100644 (file)
@@ -20,16 +20,16 @@ include "Basic_2/unfold/lifts.ma".
 inductive ldrops: list2 nat nat → relation lenv ≝
 | ldrops_nil : ∀L. ldrops ⟠ L L
 | ldrops_cons: ∀L1,L,L2,des,d,e.
-               ldrops des L1 L â\86\92 â\87\93[d,e] L ≡ L2 → ldrops ({d, e} :: des) L1 L2
+               ldrops des L1 L â\86\92 â\87©[d,e] L ≡ L2 → ldrops ({d, e} :: des) L1 L2
 .
 
 interpretation "generic local environment slicing"
-   'RLDrop des T1 T2 = (ldrops des T1 T2).
+   'RDropStar des T1 T2 = (ldrops des T1 T2).
 
 (* Basic properties *********************************************************)
 
-lemma ldrops_skip: â\88\80L1,L2,des. â\87\93[des] L1 â\89¡ L2 â\86\92 â\88\80V1,V2. â\87\91[des] V2 ≡ V1 →
-                   â\88\80I. â\87\93[ss des] L1. 𝕓{I} V1 ≡ L2. 𝕓{I} V2.
+lemma ldrops_skip: â\88\80L1,L2,des. â\87©*[des] L1 â\89¡ L2 â\86\92 â\88\80V1,V2. â\87§*[des] V2 ≡ V1 →
+                   â\88\80I. â\87©*[ss des] L1. 𝕓{I} V1 ≡ L2. 𝕓{I} V2.
 #L1 #L2 #des #H elim H -L1 -L2 -des
 [ #L #V1 #V2 #HV12 #I
   >(lifts_inv_nil … HV12) -HV12 //
index 43859f1081512afcc9e869b1c5e3ed84578d5043..4e005842bcc5b4ed3a29de355c43d9d259dcfad5 100644 (file)
@@ -25,36 +25,37 @@ let rec ss (des:list2 nat nat) ≝ match des with
 inductive lifts: list2 nat nat → relation term ≝
 | lifts_nil : ∀T. lifts ⟠ T T
 | lifts_cons: ∀T1,T,T2,des,d,e.
-              â\87\91[d,e] T1 ≡ T → lifts des T T2 → lifts ({d, e} :: des) T1 T2
+              â\87§[d,e] T1 ≡ T → lifts des T T2 → lifts ({d, e} :: des) T1 T2
 .
 
-interpretation "generic relocation" 'RLift des T1 T2 = (lifts des T1 T2).
+interpretation "generic relocation"
+   'RLiftStar des T1 T2 = (lifts des T1 T2).
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lifts_inv_nil_aux: â\88\80T1,T2,des. â\87\91[des] T1 ≡ T2 → des = ⟠ → T1 = T2.
+fact lifts_inv_nil_aux: â\88\80T1,T2,des. â\87§*[des] T1 ≡ T2 → des = ⟠ → T1 = T2.
 #T1 #T2 #des * -T1 -T2 -des //
 #T1 #T #T2 #d #e #des #_ #_ #H destruct
 qed.
 
-lemma lifts_inv_nil: â\88\80T1,T2. â\87\91[⟠] T1 ≡ T2 → T1 = T2.
+lemma lifts_inv_nil: â\88\80T1,T2. â\87§*[⟠] T1 ≡ T2 → T1 = T2.
 /2 width=3/ qed-.
 
-fact lifts_inv_cons_aux: â\88\80T1,T2,des. â\87\91[des] T1 ≡ T2 →
+fact lifts_inv_cons_aux: â\88\80T1,T2,des. â\87§*[des] T1 ≡ T2 →
                          ∀d,e,tl. des = {d, e} :: tl →
-                         â\88\83â\88\83T. â\87\91[d, e] T1 â\89¡ T & â\87\91[tl] T ≡ T2.
+                         â\88\83â\88\83T. â\87§[d, e] T1 â\89¡ T & â\87§*[tl] T ≡ T2.
 #T1 #T2 #des * -T1 -T2 -des
 [ #T #d #e #tl #H destruct
 | #T1 #T #T2 #des #d #e #HT1 #HT2 #hd #he #tl #H destruct
   /2 width=3/
 qed.
 
-lemma lifts_inv_cons: â\88\80T1,T2,d,e,des. â\87\91[{d, e} :: des] T1 ≡ T2 →
-                      â\88\83â\88\83T. â\87\91[d, e] T1 â\89¡ T & â\87\91[des] T ≡ T2.
+lemma lifts_inv_cons: â\88\80T1,T2,d,e,des. â\87§*[{d, e} :: des] T1 ≡ T2 →
+                      â\88\83â\88\83T. â\87§[d, e] T1 â\89¡ T & â\87§*[des] T ≡ T2.
 /2 width=3/ qed-.
 
-lemma lifts_inv_bind1: â\88\80I,T2,des,V1,U1. â\87\91[des] 𝕓{I} V1. U1 ≡ T2 →
-                       â\88\83â\88\83V2,U2. â\87\91[des] V1 â\89¡ V2 & â\87\91[ss des] U1 ≡ U2 &
+lemma lifts_inv_bind1: â\88\80I,T2,des,V1,U1. â\87§*[des] 𝕓{I} V1. U1 ≡ T2 →
+                       â\88\83â\88\83V2,U2. â\87§*[des] V1 â\89¡ V2 & â\87§*[ss des] U1 ≡ U2 &
                                 T2 = 𝕓{I} V2. U2.
 #I #T2 #des elim des -des
 [ #V1 #U1 #H
@@ -67,8 +68,8 @@ lemma lifts_inv_bind1: ∀I,T2,des,V1,U1. ⇑[des] 𝕓{I} V1. U1 ≡ T2 →
 ]
 qed-.
 
-lemma lifts_inv_flat1: â\88\80I,T2,des,V1,U1. â\87\91[des] 𝕗{I} V1. U1 ≡ T2 →
-                       â\88\83â\88\83V2,U2. â\87\91[des] V1 â\89¡ V2 & â\87\91[des] U1 ≡ U2 &
+lemma lifts_inv_flat1: â\88\80I,T2,des,V1,U1. â\87§*[des] 𝕗{I} V1. U1 ≡ T2 →
+                       â\88\83â\88\83V2,U2. â\87§*[des] V1 â\89¡ V2 & â\87§*[des] U1 ≡ U2 &
                                 T2 = 𝕗{I} V2. U2.
 #I #T2 #des elim des -des
 [ #V1 #U1 #H
@@ -83,19 +84,19 @@ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma lifts_simple_dx: â\88\80T1,T2,des. â\87\91[des] T1 ≡ T2 → 𝕊[T1] → 𝕊[T2].
+lemma lifts_simple_dx: â\88\80T1,T2,des. â\87§*[des] T1 ≡ T2 → 𝕊[T1] → 𝕊[T2].
 #T1 #T2 #des #H elim H -T1 -T2 -des // /3 width=5 by lift_simple_dx/
 qed-.
 
-lemma lifts_simple_sn: â\88\80T1,T2,des. â\87\91[des] T1 ≡ T2 → 𝕊[T2] → 𝕊[T1].
+lemma lifts_simple_sn: â\88\80T1,T2,des. â\87§*[des] T1 ≡ T2 → 𝕊[T2] → 𝕊[T1].
 #T1 #T2 #des #H elim H -T1 -T2 -des // /3 width=5 by lift_simple_sn/
 qed-.
 
 (* Basic properties *********************************************************)
 
-lemma lifts_bind: â\88\80I,T2,V1,V2,des. â\87\91[des] V1 ≡ V2 →
-                  â\88\80T1. â\87\91[ss des] T1 ≡ T2 →
-                  â\87\91[des] 𝕓{I} V1. T1 ≡ 𝕓{I} V2. T2.
+lemma lifts_bind: â\88\80I,T2,V1,V2,des. â\87§*[des] V1 ≡ V2 →
+                  â\88\80T1. â\87§*[ss des] T1 ≡ T2 →
+                  â\87§*[des] 𝕓{I} V1. T1 ≡ 𝕓{I} V2. T2.
 #I #T2 #V1 #V2 #des #H elim H -V1 -V2 -des
 [ #V #T1 #H >(lifts_inv_nil … H) -H //
 | #V1 #V #V2 #des #d #e #HV1 #_ #IHV #T1 #H
@@ -103,9 +104,9 @@ lemma lifts_bind: ∀I,T2,V1,V2,des. ⇑[des] V1 ≡ V2 →
 ]
 qed.
 
-lemma lifts_flat: â\88\80I,T2,V1,V2,des. â\87\91[des] V1 ≡ V2 →
-                  â\88\80T1. â\87\91[des] T1 ≡ T2 →
-                  â\87\91[des] 𝕗{I} V1. T1 ≡ 𝕗{I} V2. T2.
+lemma lifts_flat: â\88\80I,T2,V1,V2,des. â\87§*[des] V1 ≡ V2 →
+                  â\88\80T1. â\87§*[des] T1 ≡ T2 →
+                  â\87§*[des] 𝕗{I} V1. T1 ≡ 𝕗{I} V2. T2.
 #I #T2 #V1 #V2 #des #H elim H -V1 -V2 -des
 [ #V #T1 #H >(lifts_inv_nil … H) -H //
 | #V1 #V #V2 #des #d #e #HV1 #_ #IHV #T1 #H
@@ -113,7 +114,7 @@ lemma lifts_flat: ∀I,T2,V1,V2,des. ⇑[des] V1 ≡ V2 →
 ]
 qed.
 
-lemma lifts_total: â\88\80des,T1. â\88\83T2. â\87\91[des] T1 ≡ T2.
+lemma lifts_total: â\88\80des,T1. â\88\83T2. â\87§*[des] T1 ≡ T2.
 #des elim des -des /2 width=2/
 #d #e #des #IH #T1
 elim (lift_total T1 d e) #T #HT1
index a40736142128c0895aec266d4714d97062311736..3032bc4760d4e4611e1a197123679f062c8eb0eb 100644 (file)
@@ -20,23 +20,23 @@ include "Basic_2/unfold/lifts.ma".
 inductive liftsv (des:list2 nat nat) : relation (list term) ≝
 | liftsv_nil : liftsv des ◊ ◊
 | liftsv_cons: ∀T1s,T2s,T1,T2.
-               â\87\91[des] T1 ≡ T2 → liftsv des T1s T2s →
+               â\87§*[des] T1 ≡ T2 → liftsv des T1s T2s →
                liftsv des (T1 :: T1s) (T2 :: T2s)
 .
 
 interpretation "generic relocation (vector)"
-   'RLift des T1s T2s = (liftsv des T1s T2s).
+   'RLiftStar des T1s T2s = (liftsv des T1s T2s).
 
 (* Basic inversion lemmas ***************************************************)
 
-axiom lifts_inv_applv1: â\88\80V1s,U1,T2,des. â\87\91[des] Ⓐ V1s. U1 ≡ T2 →
-                        â\88\83â\88\83V2s,U2. â\87\91[des] V1s â\89¡ V2s & â\87\91[des] U1 ≡ U2 &
+axiom lifts_inv_applv1: â\88\80V1s,U1,T2,des. â\87§*[des] Ⓐ V1s. U1 ≡ T2 →
+                        â\88\83â\88\83V2s,U2. â\87§*[des] V1s â\89¡ V2s & â\87§*[des] U1 ≡ U2 &
                                   T2 = Ⓐ V2s. U2.
 
 (* Basic properties *********************************************************)
 
-lemma liftsv_applv: â\88\80V1s,V2s,des. â\87\91[des] V1s ≡ V2s →
-                    â\88\80T1,T2. â\87\91[des] T1 ≡ T2 →
-                    â\87\91[des] Ⓐ V1s. T1 ≡ Ⓐ V2s. T2.
+lemma liftsv_applv: â\88\80V1s,V2s,des. â\87§*[des] V1s ≡ V2s →
+                    â\88\80T1,T2. â\87§*[des] T1 ≡ T2 →
+                    â\87§*[des] Ⓐ V1s. T1 ≡ Ⓐ V2s. T2.
 #V1s #V2s #des #H elim H -V1s -V2s // /3 width=1/
 qed.
index 7c86262d9a0d0b91bf5c76466fce76396c0a2b2e..6ede048c5281dfa980a8c168e673e190119e5a75 100644 (file)
@@ -26,46 +26,46 @@ interpretation "partial unfold (local environment)"
 (* Basic eliminators ********************************************************)
 
 lemma ltpss_ind: ∀d,e,L1. ∀R:predicate lenv. R L1 →
-                 (â\88\80L,L2. L1 [d, e] â\89«* L â\86\92 L [d, e] â\89« L2 → R L → R L2) →
-                 â\88\80L2. L1 [d, e] â\89«* L2 → R L2.
+                 (â\88\80L,L2. L1 [d, e] â\96¶* L â\86\92 L [d, e] â\96 L2 → R L → R L2) →
+                 â\88\80L2. L1 [d, e] â\96* L2 → R L2.
 #d #e #L1 #R #HL1 #IHL1 #L2 #HL12 @(TC_star_ind … HL1 IHL1 … HL12) //
 qed-.
 
 (* Basic properties *********************************************************)
 
 lemma ltpss_strap: ∀L1,L,L2,d,e.
-                   L1 [d, e] â\89« L â\86\92 L [d, e] â\89«* L2 â\86\92 L1 [d, e] â\89«* L2. 
+                   L1 [d, e] â\96¶ L â\86\92 L [d, e] â\96¶* L2 â\86\92 L1 [d, e] â\96* L2. 
 /2 width=3/ qed.
 
-lemma ltpss_refl: â\88\80L,d,e. L [d, e] â\89«* L.
+lemma ltpss_refl: â\88\80L,d,e. L [d, e] â\96* L.
 /2 width=1/ qed.
 
 (* Basic inversion lemmas ***************************************************)
 
-lemma ltpss_inv_refl_O2: â\88\80d,L1,L2. L1 [d, 0] â\89«* L2 → L1 = L2.
+lemma ltpss_inv_refl_O2: â\88\80d,L1,L2. L1 [d, 0] â\96* L2 → L1 = L2.
 #d #L1 #L2 #H @(ltpss_ind … H) -L2 //
 #L #L2 #_ #HL2 #IHL <(ltps_inv_refl_O2 … HL2) -HL2 //
 qed-.
 
-lemma ltpss_inv_atom1: â\88\80d,e,L2. â\8b\86 [d, e] â\89«* L2 → L2 = ⋆.
+lemma ltpss_inv_atom1: â\88\80d,e,L2. â\8b\86 [d, e] â\96* L2 → L2 = ⋆.
 #d #e #L2 #H @(ltpss_ind … H) -L2 //
 #L #L2 #_ #HL2 #IHL destruct
 >(ltps_inv_atom1 … HL2) -HL2 //
 qed-.
 
-fact ltpss_inv_atom2_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89«* L2 → L2 = ⋆ → L1 = ⋆.
+fact ltpss_inv_atom2_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96* L2 → L2 = ⋆ → L1 = ⋆.
 #d #e #L1 #L2 #H @(ltpss_ind … H) -L2 //
 #L2 #L #_ #HL2 #IHL2 #H destruct
 lapply (ltps_inv_atom2 … HL2) -HL2 /2 width=1/
 qed.
 
-lemma ltpss_inv_atom2: â\88\80d,e,L1. L1 [d, e] â\89«* ⋆ → L1 = ⋆.
+lemma ltpss_inv_atom2: â\88\80d,e,L1. L1 [d, e] â\96* ⋆ → L1 = ⋆.
 /2 width=5/ qed-.
 (*
-fact ltps_inv_tps22_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → d = 0 → 0 < e →
+fact ltps_inv_tps22_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → d = 0 → 0 < e →
                          ∀K2,I,V2. L2 = K2. 𝕓{I} V2 →
-                         â\88\83â\88\83K1,V1. K1 [0, e - 1] â\89« K2 &
-                                  K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+                         â\88\83â\88\83K1,V1. K1 [0, e - 1] â\96 K2 &
+                                  K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 #d #e #L1 #L2 * -d e L1 L2
 [ #d #e #_ #_ #K1 #I #V1 #H destruct
@@ -75,15 +75,15 @@ fact ltps_inv_tps22_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → d = 0 → 0 < e →
 ]
 qed.
 
-lemma ltps_inv_tps22: â\88\80e,L1,K2,I,V2. L1 [0, e] â\89« K2. 𝕓{I} V2 → 0 < e →
-                      â\88\83â\88\83K1,V1. K1 [0, e - 1] â\89« K2 & K2 â\8a¢ V1 [0, e - 1] â\89« V2 &
+lemma ltps_inv_tps22: â\88\80e,L1,K2,I,V2. L1 [0, e] â\96 K2. 𝕓{I} V2 → 0 < e →
+                      â\88\83â\88\83K1,V1. K1 [0, e - 1] â\96¶ K2 & K2 â\8a¢ V1 [0, e - 1] â\96 V2 &
                                L1 = K1. 𝕓{I} V1.
 /2 width=5/ qed.
 
-fact ltps_inv_tps12_aux: â\88\80d,e,L1,L2. L1 [d, e] â\89« L2 → 0 < d →
+fact ltps_inv_tps12_aux: â\88\80d,e,L1,L2. L1 [d, e] â\96 L2 → 0 < d →
                          ∀I,K2,V2. L2 = K2. 𝕓{I} V2 →
-                         â\88\83â\88\83K1,V1. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+                         â\88\83â\88\83K1,V1. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 #d #e #L1 #L2 * -d e L1 L2
 [ #d #e #_ #I #K2 #V2 #H destruct
@@ -93,9 +93,9 @@ fact ltps_inv_tps12_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → 0 < d →
 ]
 qed.
 
-lemma ltps_inv_tps12: â\88\80L1,K2,I,V2,d,e. L1 [d, e] â\89« K2. 𝕓{I} V2 → 0 < d →
-                      â\88\83â\88\83K1,V1. K1 [d - 1, e] â\89« K2 &
-                                  K2 â\8a¢ V1 [d - 1, e] â\89« V2 &
+lemma ltps_inv_tps12: â\88\80L1,K2,I,V2,d,e. L1 [d, e] â\96 K2. 𝕓{I} V2 → 0 < d →
+                      â\88\83â\88\83K1,V1. K1 [d - 1, e] â\96 K2 &
+                                  K2 â\8a¢ V1 [d - 1, e] â\96 V2 &
                                   L1 = K1. 𝕓{I} V1.
 /2 width=1/ qed.
 *)
index f042449aee72c446e149446a11f955c8b1537913..b52cedae7698c826d1f7770b99574a408e9f5a50 100644 (file)
@@ -17,21 +17,21 @@ include "Basic_2/unfold/ltpss.ma".
 
 (* PARTIAL UNFOLD ON LOCAL ENVIRONMENTS *************************************)
 
-lemma ltpss_ldrop_conf_ge: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89«* L1 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 →
-                           d1 + e1 â\89¤ e2 â\86\92 â\87\93[0, e2] L1 ≡ L2.
+lemma ltpss_ldrop_conf_ge: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96* L1 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 →
+                           d1 + e1 â\89¤ e2 â\86\92 â\87©[0, e2] L1 ≡ L2.
 #L0 #L1 #d1 #e1 #H @(ltpss_ind … H) -L1 // /3 width=6/
 qed.
 
-lemma ltpss_ldrop_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89«* L0 →
-                            â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 →
-                            d1 + e1 â\89¤ e2 â\86\92 â\87\93[0, e2] L1 ≡ L2.
+lemma ltpss_ldrop_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96* L0 →
+                            â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 →
+                            d1 + e1 â\89¤ e2 â\86\92 â\87©[0, e2] L1 ≡ L2.
 #L1 #L0 #d1 #e1 #H @(ltpss_ind … H) -L0 // /3 width=6/
 qed.
 
-lemma ltpss_ldrop_conf_be: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89«* L1 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
-                           â\88\83â\88\83L. L2 [0, d1 + e1 - e2] â\89«* L & â\87\93[0, e2] L1 ≡ L.
+lemma ltpss_ldrop_conf_be: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96* L1 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
+                           â\88\83â\88\83L. L2 [0, d1 + e1 - e2] â\96¶* L & â\87©[0, e2] L1 ≡ L.
 #L0 #L1 #d1 #e1 #H @(ltpss_ind … H) -L1
 [ /2 width=3/
 | #L #L1 #_ #HL1 #IHL #L2 #e2 #HL02 #Hd1e2 #He2de1
@@ -40,9 +40,9 @@ lemma ltpss_ldrop_conf_be: ∀L0,L1,d1,e1. L0 [d1, e1] ≫* L1 →
 ]
 qed.
 
-lemma ltpss_ldrop_trans_be: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89«* L0 →
-                            â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
-                            â\88\83â\88\83L. L [0, d1 + e1 - e2] â\89«* L2 & â\87\93[0, e2] L1 ≡ L.
+lemma ltpss_ldrop_trans_be: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96* L0 →
+                            â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → d1 ≤ e2 → e2 ≤ d1 + e1 →
+                            â\88\83â\88\83L. L [0, d1 + e1 - e2] â\96¶* L2 & â\87©[0, e2] L1 ≡ L.
 #L1 #L0 #d1 #e1 #H @(ltpss_ind … H) -L0
 [ /2 width=3/
 | #L #L0 #_ #HL0 #IHL #L2 #e2 #HL02 #Hd1e2 #He2de1
@@ -51,9 +51,9 @@ lemma ltpss_ldrop_trans_be: ∀L1,L0,d1,e1. L1 [d1, e1] ≫* L0 →
 ]
 qed.
 
-lemma ltpss_ldrop_conf_le: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\89«* L1 →
-                           â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → e2 ≤ d1 →
-                           â\88\83â\88\83L. L2 [d1 - e2, e1] â\89«* L & â\87\93[0, e2] L1 ≡ L.
+lemma ltpss_ldrop_conf_le: â\88\80L0,L1,d1,e1. L0 [d1, e1] â\96* L1 →
+                           â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → e2 ≤ d1 →
+                           â\88\83â\88\83L. L2 [d1 - e2, e1] â\96¶* L & â\87©[0, e2] L1 ≡ L.
 #L0 #L1 #d1 #e1 #H @(ltpss_ind … H) -L1
 [ /2 width=3/
 | #L #L1 #_ #HL1 #IHL #L2 #e2 #HL02 #He2d1
@@ -62,9 +62,9 @@ lemma ltpss_ldrop_conf_le: ∀L0,L1,d1,e1. L0 [d1, e1] ≫* L1 →
 ]
 qed.
 
-lemma ltpss_ldrop_trans_le: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89«* L0 →
-                            â\88\80L2,e2. â\87\93[0, e2] L0 ≡ L2 → e2 ≤ d1 →
-                            â\88\83â\88\83L. L [d1 - e2, e1] â\89«* L2 & â\87\93[0, e2] L1 ≡ L.
+lemma ltpss_ldrop_trans_le: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96* L0 →
+                            â\88\80L2,e2. â\87©[0, e2] L0 ≡ L2 → e2 ≤ d1 →
+                            â\88\83â\88\83L. L [d1 - e2, e1] â\96¶* L2 & â\87©[0, e2] L1 ≡ L.
 #L1 #L0 #d1 #e1 #H @(ltpss_ind … H) -L0
 [ /2 width=3/
 | #L #L0 #_ #HL0 #IHL #L2 #e2 #HL02 #He2d1
index e4291acf91e315b7342ceb50215dcb64f8616001..e9995db7037934e5aa8d5b2eff9b054a310af183 100644 (file)
@@ -19,12 +19,12 @@ include "Basic_2/unfold/ltpss_tpss.ma".
 (* Main properties **********************************************************)
 
 theorem ltpss_trans_eq: ∀L1,L,L2,d,e.
-                        L1 [d, e] â\89«* L â\86\92 L [d, e] â\89«* L2 â\86\92 L1 [d, e] â\89«* L2. 
+                        L1 [d, e] â\96¶* L â\86\92 L [d, e] â\96¶* L2 â\86\92 L1 [d, e] â\96* L2. 
 /2 width=3/ qed.
 
 lemma ltpss_tpss2: ∀L1,L2,I,V1,V2,e.
-                   L1 [0, e] â\89«* L2 â\86\92 L2 â\8a¢ V1 [0, e] â\89«* V2 →
-                   L1. ð\9d\95\93{I} V1 [0, e + 1] â\89«* L2. 𝕓{I} V2.
+                   L1 [0, e] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [0, e] â\96* V2 →
+                   L1. ð\9d\95\93{I} V1 [0, e + 1] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #e #HL12 #H @(tpss_ind … H) -V2
 [ /2 width=1/
 | #V #V2 #_ #HV2 #IHV @(ltpss_trans_eq … IHV) /2 width=1/
@@ -32,15 +32,15 @@ lemma ltpss_tpss2: ∀L1,L2,I,V1,V2,e.
 qed.
 
 lemma ltpss_tpss2_lt: ∀L1,L2,I,V1,V2,e.
-                      L1 [0, e - 1] â\89«* L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\89«* V2 →
-                      0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\89«* L2. 𝕓{I} V2.
+                      L1 [0, e - 1] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\96* V2 →
+                      0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #e #HL12 #HV12 #He
 >(plus_minus_m_m e 1) // /2 width=1/
 qed.
 
 lemma ltpss_tpss1: ∀L1,L2,I,V1,V2,d,e.
-                   L1 [d, e] â\89«* L2 â\86\92 L2 â\8a¢ V1 [d, e] â\89«* V2 →
-                   L1. ð\9d\95\93{I} V1 [d + 1, e] â\89«* L2. 𝕓{I} V2.
+                   L1 [d, e] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [d, e] â\96* V2 →
+                   L1. ð\9d\95\93{I} V1 [d + 1, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #d #e #HL12 #H @(tpss_ind … H) -V2
 [ /2 width=1/
 | #V #V2 #_ #HV2 #IHV @(ltpss_trans_eq … IHV) /2 width=1/
@@ -48,8 +48,8 @@ lemma ltpss_tpss1: ∀L1,L2,I,V1,V2,d,e.
 qed.
 
 lemma ltpss_tpss1_lt: ∀L1,L2,I,V1,V2,d,e.
-                      L1 [d - 1, e] â\89«* L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\89«* V2 →
-                      0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\89«* L2. 𝕓{I} V2.
+                      L1 [d - 1, e] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\96* V2 →
+                      0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #d #e #HL12 #HV12 #Hd
 >(plus_minus_m_m d 1) // /2 width=1/
 qed.
index c75119b66af51e71a2ce56cf1f1299e9120ff520..5dbe0dea17a3c8457422ca175e8a14997d04573b 100644 (file)
@@ -19,23 +19,23 @@ include "Basic_2/unfold/ltpss.ma".
 
 (* Properties concerning partial unfold on terms ****************************)
 
-lemma ltpss_tpss_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89«* L0 →
-                           â\88\80T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89«* U2 →
-                           d1 + e1 â\89¤ d2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+lemma ltpss_tpss_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96* L0 →
+                           â\88\80T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96* U2 →
+                           d1 + e1 â\89¤ d2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L1 #L0 #d1 #e1 #H @(ltpss_ind … H) -L0 //
 #L #L0 #_ #HL0 #IHL #T2 #U2 #d2 #e2 #HTU2 #Hde1d2
 lapply (ltps_tpss_trans_ge … HL0 HTU2) -HL0 -HTU2 /2 width=1/
 qed.
 
-lemma ltpss_tps_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\89«* L0 →
-                          â\88\80T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\89« U2 →
-                          d1 + e1 â\89¤ d2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+lemma ltpss_tps_trans_ge: â\88\80L1,L0,d1,e1. L1 [d1, e1] â\96* L0 →
+                          â\88\80T2,U2,d2,e2. L0 â\8a¢ T2 [d2, e2] â\96 U2 →
+                          d1 + e1 â\89¤ d2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L1 #L0 #d1 #e1 #HL10 #T2 #U2 #d2 #e2 #HTU2 #Hde1d2
 @(ltpss_tpss_trans_ge … HL10 … Hde1d2) /2 width=1/ (**) (* /3 width=6/ is too slow *)
 qed.
 
-lemma ltpss_tpss_trans_eq: â\88\80L0,L1,d,e. L0 [d, e] â\89«* L1 →
-                           â\88\80T2,U2. L1 â\8a¢ T2 [d, e] â\89«* U2 â\86\92 L0 â\8a¢ T2 [d, e] â\89«* U2.
+lemma ltpss_tpss_trans_eq: â\88\80L0,L1,d,e. L0 [d, e] â\96* L1 →
+                           â\88\80T2,U2. L1 â\8a¢ T2 [d, e] â\96¶* U2 â\86\92 L0 â\8a¢ T2 [d, e] â\96* U2.
 #L0 #L1 #d #e #H @(ltpss_ind … H) -L1
 [ /2 width=1/
 | #L #L1 #_ #HL1 #IHL #T2 #U2 #HTU2
@@ -43,13 +43,13 @@ lemma ltpss_tpss_trans_eq: ∀L0,L1,d,e. L0 [d, e] ≫* L1 →
 ]
 qed.
 
-lemma ltpss_tps_trans_eq: â\88\80L0,L1,d,e. L0 [d, e] â\89«* L1 →
-                          â\88\80T2,U2. L1 â\8a¢ T2 [d, e] â\89« U2 â\86\92 L0 â\8a¢ T2 [d, e] â\89«* U2.
+lemma ltpss_tps_trans_eq: â\88\80L0,L1,d,e. L0 [d, e] â\96* L1 →
+                          â\88\80T2,U2. L1 â\8a¢ T2 [d, e] â\96¶ U2 â\86\92 L0 â\8a¢ T2 [d, e] â\96* U2.
 /3 width=3/ qed.
 
 lemma ltpss_tpss_conf_ge: ∀L0,L1,T2,U2,d1,e1,d2,e2. d1 + e1 ≤ d2 → 
-                          L0 â\8a¢ T2 [d2, e2] â\89«* U2 â\86\92 L0 [d1, e1] â\89«* L1 →
-                          L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+                          L0 â\8a¢ T2 [d2, e2] â\96¶* U2 â\86\92 L0 [d1, e1] â\96* L1 →
+                          L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #Hde1d2 #HTU2 #H @(ltpss_ind … H) -L1
 [ //
 | -HTU2 #L #L1 #_ #HL1 #IHL
@@ -58,15 +58,15 @@ lemma ltpss_tpss_conf_ge: ∀L0,L1,T2,U2,d1,e1,d2,e2. d1 + e1 ≤ d2 →
 qed.
 
 lemma ltpss_tps_conf_ge: ∀L0,L1,T2,U2,d1,e1,d2,e2. d1 + e1 ≤ d2 → 
-                         L0 â\8a¢ T2 [d2, e2] â\89« U2 â\86\92 L0 [d1, e1] â\89«* L1 →
-                         L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+                         L0 â\8a¢ T2 [d2, e2] â\96¶ U2 â\86\92 L0 [d1, e1] â\96* L1 →
+                         L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #Hde1d2 #HTU2 #HL01
 @(ltpss_tpss_conf_ge … Hde1d2 … HL01) /2 width=1/ (**) (* /3 width=6/ is too slow *)
 qed.
 
 lemma ltpss_tpss_conf_eq: ∀L0,L1,T2,U2,d,e.
-                          L0 â\8a¢ T2 [d, e] â\89«* U2 â\86\92 L0 [d, e] â\89«* L1 →
-                          â\88\83â\88\83T. L1 â\8a¢ T2 [d, e] â\89«* T & L1 â\8a¢ U2 [d, e] â\89«* T.
+                          L0 â\8a¢ T2 [d, e] â\96¶* U2 â\86\92 L0 [d, e] â\96* L1 →
+                          â\88\83â\88\83T. L1 â\8a¢ T2 [d, e] â\96¶* T & L1 â\8a¢ U2 [d, e] â\96* T.
 #L0 #L1 #T2 #U2 #d #e #HTU2 #H @(ltpss_ind … H) -L1
 [ /2 width=3/
 | -HTU2 #L #L1 #_ #HL1 * #W2 #HTW2 #HUW2
@@ -79,13 +79,13 @@ lemma ltpss_tpss_conf_eq: ∀L0,L1,T2,U2,d,e.
 qed.
 
 lemma ltpss_tps_conf_eq: ∀L0,L1,T2,U2,d,e.
-                         L0 â\8a¢ T2 [d, e] â\89« U2 â\86\92 L0 [d, e] â\89«* L1 →
-                         â\88\83â\88\83T. L1 â\8a¢ T2 [d, e] â\89«* T & L1 â\8a¢ U2 [d, e] â\89«* T.
+                         L0 â\8a¢ T2 [d, e] â\96¶ U2 â\86\92 L0 [d, e] â\96* L1 →
+                         â\88\83â\88\83T. L1 â\8a¢ T2 [d, e] â\96¶* T & L1 â\8a¢ U2 [d, e] â\96* T.
 /3 width=3/ qed.
 
-lemma ltpss_tpss_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\89«* T2 →
-                       â\88\80L2,ds,es. L1 [ds, es] â\89«* L2 → 
-                       â\88\83â\88\83T. L2 â\8a¢ T1 [d, e] â\89«* T & L1 â\8a¢ T2 [ds, es] â\89«* T.
+lemma ltpss_tpss_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\96* T2 →
+                       â\88\80L2,ds,es. L1 [ds, es] â\96* L2 → 
+                       â\88\83â\88\83T. L2 â\8a¢ T1 [d, e] â\96¶* T & L1 â\8a¢ T2 [ds, es] â\96* T.
 #L1 #T1 #T2 #d #e #HT12 #L2 #ds #es #H @(ltpss_ind … H) -L2
 [ /3 width=3/
 | #L #L2 #HL1 #HL2 * #T #HT1 #HT2
@@ -96,16 +96,16 @@ lemma ltpss_tpss_conf: ∀L1,T1,T2,d,e. L1 ⊢ T1 [d, e] ≫* T2 →
 ]
 qed.
 
-lemma ltpss_tps_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\89« T2 →
-                      â\88\80L2,ds,es. L1 [ds, es] â\89«* L2 → 
-                      â\88\83â\88\83T. L2 â\8a¢ T1 [d, e] â\89«* T & L1 â\8a¢ T2 [ds, es] â\89«* T.
+lemma ltpss_tps_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\96 T2 →
+                      â\88\80L2,ds,es. L1 [ds, es] â\96* L2 → 
+                      â\88\83â\88\83T. L2 â\8a¢ T1 [d, e] â\96¶* T & L1 â\8a¢ T2 [ds, es] â\96* T.
 /3 width=1/ qed.
 
 (* Advanced properties ******************************************************)
 
 lemma ltpss_tps2: ∀L1,L2,I,e.
-                  L1 [0, e] â\89«* L2 â\86\92 â\88\80V1,V2. L2 â\8a¢ V1 [0, e] â\89« V2 →
-                  L1. ð\9d\95\93{I} V1 [0, e + 1] â\89«* L2. 𝕓{I} V2.
+                  L1 [0, e] â\96¶* L2 â\86\92 â\88\80V1,V2. L2 â\8a¢ V1 [0, e] â\96 V2 →
+                  L1. ð\9d\95\93{I} V1 [0, e + 1] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #e #H @(ltpss_ind … H) -L2
 [ /3 width=1/
 | #L #L2 #_ #HL2 #IHL #V1 #V2 #HV12
@@ -116,15 +116,15 @@ lemma ltpss_tps2: ∀L1,L2,I,e.
 qed.
 
 lemma ltpss_tps2_lt: ∀L1,L2,I,V1,V2,e.
-                     L1 [0, e - 1] â\89«* L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\89« V2 →
-                     0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\89«* L2. 𝕓{I} V2.
+                     L1 [0, e - 1] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [0, e - 1] â\96 V2 →
+                     0 < e â\86\92 L1. ð\9d\95\93{I} V1 [0, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #e #HL12 #HV12 #He
 >(plus_minus_m_m e 1) // /2 width=1/
 qed.
 
-lemma ltpss_tps1: â\88\80L1,L2,I,d,e. L1 [d, e] â\89«* L2 →
-                  â\88\80V1,V2. L2 â\8a¢ V1 [d, e] â\89« V2 →
-                  L1. ð\9d\95\93{I} V1 [d + 1, e] â\89«* L2. 𝕓{I} V2.
+lemma ltpss_tps1: â\88\80L1,L2,I,d,e. L1 [d, e] â\96* L2 →
+                  â\88\80V1,V2. L2 â\8a¢ V1 [d, e] â\96 V2 →
+                  L1. ð\9d\95\93{I} V1 [d + 1, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #d #e #H @(ltpss_ind … H) -L2
 [ /3 width=1/
 | #L #L2 #_ #HL2 #IHL #V1 #V2 #HV12
@@ -135,16 +135,16 @@ lemma ltpss_tps1: ∀L1,L2,I,d,e. L1 [d, e] ≫* L2 →
 qed.
 
 lemma ltpss_tps1_lt: ∀L1,L2,I,V1,V2,d,e.
-                     L1 [d - 1, e] â\89«* L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\89« V2 →
-                     0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\89«* L2. 𝕓{I} V2.
+                     L1 [d - 1, e] â\96¶* L2 â\86\92 L2 â\8a¢ V1 [d - 1, e] â\96 V2 →
+                     0 < d â\86\92 L1. ð\9d\95\93{I} V1 [d, e] â\96* L2. 𝕓{I} V2.
 #L1 #L2 #I #V1 #V2 #d #e #HL12 #HV12 #Hd
 >(plus_minus_m_m d 1) // /2 width=1/
 qed.
 
 (* Advanced forward lemmas **************************************************)
 
-lemma ltpss_fwd_tpss21: â\88\80e,K1,I,V1,L2. 0 < e â\86\92 K1. ð\9d\95\93{I} V1 [0, e] â\89«* L2 →
-                        â\88\83â\88\83K2,V2. K1 [0, e - 1] â\89«* K2 & K1 â\8a¢ V1 [0, e - 1] â\89«* V2 &
+lemma ltpss_fwd_tpss21: â\88\80e,K1,I,V1,L2. 0 < e â\86\92 K1. ð\9d\95\93{I} V1 [0, e] â\96* L2 →
+                        â\88\83â\88\83K2,V2. K1 [0, e - 1] â\96¶* K2 & K1 â\8a¢ V1 [0, e - 1] â\96* V2 &
                                  L2 = K2. 𝕓{I} V2.
 #e #K1 #I #V1 #L2 #He #H @(ltpss_ind … H) -L2
 [ /2 width=5/
@@ -155,9 +155,9 @@ lemma ltpss_fwd_tpss21: ∀e,K1,I,V1,L2. 0 < e → K1. 𝕓{I} V1 [0, e] ≫* L2
 ]
 qed-.
 
-lemma ltpss_fwd_tpss11: â\88\80d,e,I,K1,V1,L2. 0 < d â\86\92 K1. ð\9d\95\93{I} V1 [d, e] â\89«* L2 →
-                        â\88\83â\88\83K2,V2. K1 [d - 1, e] â\89«* K2 &
-                                 K1 â\8a¢ V1 [d - 1, e] â\89«* V2 &
+lemma ltpss_fwd_tpss11: â\88\80d,e,I,K1,V1,L2. 0 < d â\86\92 K1. ð\9d\95\93{I} V1 [d, e] â\96* L2 →
+                        â\88\83â\88\83K2,V2. K1 [d - 1, e] â\96* K2 &
+                                 K1 â\8a¢ V1 [d - 1, e] â\96* V2 &
                                  L2 = K2. 𝕓{I} V2.
 #d #e #K1 #I #V1 #L2 #Hd #H @(ltpss_ind … H) -L2
 [ /2 width=5/
index 0f6196e523c40f6fca0f457f8ae0a2a94ca9b832..0db2e9395f25d319197b1646da94d678c49bd042 100644 (file)
@@ -25,27 +25,27 @@ interpretation "partial unfold (term)"
 (* Basic eliminators ********************************************************)
 
 lemma tpss_ind: ∀d,e,L,T1. ∀R:predicate term. R T1 →
-                (â\88\80T,T2. L â\8a¢ T1 [d, e] â\89«* T â\86\92 L â\8a¢ T [d, e] â\89« T2 → R T → R T2) →
-                â\88\80T2. L â\8a¢ T1 [d, e] â\89«* T2 → R T2.
+                (â\88\80T,T2. L â\8a¢ T1 [d, e] â\96¶* T â\86\92 L â\8a¢ T [d, e] â\96 T2 → R T → R T2) →
+                â\88\80T2. L â\8a¢ T1 [d, e] â\96* T2 → R T2.
 #d #e #L #T1 #R #HT1 #IHT1 #T2 #HT12 @(TC_star_ind … HT1 IHT1 … HT12) //
 qed-.
 
 (* Basic properties *********************************************************)
 
 lemma tpss_strap: ∀L,T1,T,T2,d,e. 
-                  L â\8a¢ T1 [d, e] â\89« T â\86\92 L â\8a¢ T [d, e] â\89«* T2 â\86\92 L â\8a¢ T1 [d, e] â\89«* T2. 
+                  L â\8a¢ T1 [d, e] â\96¶ T â\86\92 L â\8a¢ T [d, e] â\96¶* T2 â\86\92 L â\8a¢ T1 [d, e] â\96* T2. 
 /2 width=3/ qed.
 
-lemma tpss_lsubs_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\89«* T2 →
-                       â\88\80L2. L1 [d, e] â\89¼ L2 â\86\92 L2 â\8a¢ T1 [d, e] â\89«* T2.
+lemma tpss_lsubs_conf: â\88\80L1,T1,T2,d,e. L1 â\8a¢ T1 [d, e] â\96* T2 →
+                       â\88\80L2. L1 [d, e] â\89¼ L2 â\86\92 L2 â\8a¢ T1 [d, e] â\96* T2.
 /3 width=3/ qed.
 
-lemma tpss_refl: â\88\80d,e,L,T. L â\8a¢ T [d, e] â\89«* T.
+lemma tpss_refl: â\88\80d,e,L,T. L â\8a¢ T [d, e] â\96* T.
 /2 width=1/ qed.
 
-lemma tpss_bind: â\88\80L,V1,V2,d,e. L â\8a¢ V1 [d, e] â\89«* V2 →
-                 â\88\80I,T1,T2. L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\89«* T2 →
-                 L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\89«* 𝕓{I} V2. T2.
+lemma tpss_bind: â\88\80L,V1,V2,d,e. L â\8a¢ V1 [d, e] â\96* V2 →
+                 â\88\80I,T1,T2. L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\96* T2 →
+                 L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\96* 𝕓{I} V2. T2.
 #L #V1 #V2 #d #e #HV12 elim HV12 -V2
 [ #V2 #HV12 #I #T1 #T2 #HT12 elim HT12 -T2
   [ /3 width=5/
@@ -58,8 +58,8 @@ lemma tpss_bind: ∀L,V1,V2,d,e. L ⊢ V1 [d, e] ≫* V2 →
 qed.
 
 lemma tpss_flat: ∀L,I,V1,V2,T1,T2,d,e.
-                 L â\8a¢ V1 [d, e] â\89« * V2 â\86\92 L â\8a¢ T1 [d, e] â\89«* T2 →
-                 L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\89«* 𝕗{I} V2. T2.
+                 L â\8a¢ V1 [d, e] â\96¶ * V2 â\86\92 L â\8a¢ T1 [d, e] â\96* T2 →
+                 L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\96* 𝕗{I} V2. T2.
 #L #I #V1 #V2 #T1 #T2 #d #e #HV12 elim HV12 -V2
 [ #V2 #HV12 #HT12 elim HT12 -T2
   [ /3 width=1/
@@ -70,9 +70,9 @@ lemma tpss_flat: ∀L,I,V1,V2,T1,T2,d,e.
 ]
 qed.
 
-lemma tpss_weak: â\88\80L,T1,T2,d1,e1. L â\8a¢ T1 [d1, e1] â\89«* T2 →
+lemma tpss_weak: â\88\80L,T1,T2,d1,e1. L â\8a¢ T1 [d1, e1] â\96* T2 →
                  ∀d2,e2. d2 ≤ d1 → d1 + e1 ≤ d2 + e2 →
-                 L â\8a¢ T1 [d2, e2] â\89«* T2.
+                 L â\8a¢ T1 [d2, e2] â\96* T2.
 #L #T1 #T2 #d1 #e1 #H #d1 #d2 #Hd21 #Hde12 @(tpss_ind … H) -T2
 [ //
 | #T #T2 #_ #HT12 #IHT
@@ -81,7 +81,7 @@ lemma tpss_weak: ∀L,T1,T2,d1,e1. L ⊢ T1 [d1, e1] ≫* T2 →
 qed.
 
 lemma tpss_weak_top: ∀L,T1,T2,d,e.
-                     L â\8a¢ T1 [d, e] â\89«* T2 â\86\92 L â\8a¢ T1 [d, |L| - d] â\89«* T2.
+                     L â\8a¢ T1 [d, e] â\96¶* T2 â\86\92 L â\8a¢ T1 [d, |L| - d] â\96* T2.
 #L #T1 #T2 #d #e #H @(tpss_ind … H) -T2
 [ //
 | #T #T2 #_ #HT12 #IHT
@@ -90,7 +90,7 @@ lemma tpss_weak_top: ∀L,T1,T2,d,e.
 qed.
 
 lemma tpss_weak_all: ∀L,T1,T2,d,e.
-                     L â\8a¢ T1 [d, e] â\89«* T2 â\86\92 L â\8a¢ T1 [0, |L|] â\89«* T2.
+                     L â\8a¢ T1 [d, e] â\96¶* T2 â\86\92 L â\8a¢ T1 [0, |L|] â\96* T2.
 #L #T1 #T2 #d #e #HT12
 lapply (tpss_weak … HT12 0 (d + e) ? ?) -HT12 // #HT12
 lapply (tpss_weak_top … HT12) //
@@ -99,7 +99,7 @@ qed.
 (* Basic inversion lemmas ***************************************************)
 
 (* Note: this can be derived from tpss_inv_atom1 *)
-lemma tpss_inv_sort1: â\88\80L,T2,k,d,e. L â\8a¢ â\8b\86k [d, e] â\89«* T2 → T2 = ⋆k.
+lemma tpss_inv_sort1: â\88\80L,T2,k,d,e. L â\8a¢ â\8b\86k [d, e] â\96* T2 → T2 = ⋆k.
 #L #T2 #k #d #e #H @(tpss_ind … H) -T2
 [ //
 | #T #T2 #_ #HT2 #IHT destruct
@@ -108,7 +108,7 @@ lemma tpss_inv_sort1: ∀L,T2,k,d,e. L ⊢ ⋆k [d, e] ≫* T2 → T2 = ⋆k.
 qed-.
 
 (* Note: this can be derived from tpss_inv_atom1 *)
-lemma tpss_inv_gref1: â\88\80L,T2,p,d,e. L â\8a¢ Â§p [d, e] â\89«* T2 → T2 = §p.
+lemma tpss_inv_gref1: â\88\80L,T2,p,d,e. L â\8a¢ Â§p [d, e] â\96* T2 → T2 = §p.
 #L #T2 #p #d #e #H @(tpss_ind … H) -T2
 [ //
 | #T #T2 #_ #HT2 #IHT destruct
@@ -116,9 +116,9 @@ lemma tpss_inv_gref1: ∀L,T2,p,d,e. L ⊢ §p [d, e] ≫* T2 → T2 = §p.
 ]
 qed-.
 
-lemma tpss_inv_bind1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\89«* U2 →
-                      â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89«* V2 & 
-                               L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\89«* T2 &
+lemma tpss_inv_bind1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\93{I} V1. T1 [d, e] â\96* U2 →
+                      â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96* V2 & 
+                               L. ð\9d\95\93{I} V2 â\8a¢ T1 [d + 1, e] â\96* T2 &
                                U2 =  𝕓{I} V2. T2.
 #d #e #L #I #V1 #T1 #U2 #H @(tpss_ind … H) -U2
 [ /2 width=5/
@@ -128,8 +128,8 @@ lemma tpss_inv_bind1: ∀d,e,L,I,V1,T1,U2. L ⊢ 𝕓{I} V1. T1 [d, e] ≫* U2 
 ]
 qed-.
 
-lemma tpss_inv_flat1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\89«* U2 →
-                      â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\89«* V2 & L â\8a¢ T1 [d, e] â\89«* T2 &
+lemma tpss_inv_flat1: â\88\80d,e,L,I,V1,T1,U2. L â\8a¢ ð\9d\95\97{I} V1. T1 [d, e] â\96* U2 →
+                      â\88\83â\88\83V2,T2. L â\8a¢ V1 [d, e] â\96¶* V2 & L â\8a¢ T1 [d, e] â\96* T2 &
                                U2 =  𝕗{I} V2. T2.
 #d #e #L #I #V1 #T1 #U2 #H @(tpss_ind … H) -U2
 [ /2 width=5/
@@ -138,7 +138,7 @@ lemma tpss_inv_flat1: ∀d,e,L,I,V1,T1,U2. L ⊢ 𝕗{I} V1. T1 [d, e] ≫* U2 
 ]
 qed-.
 
-lemma tpss_inv_refl_O2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 0] â\89«* T2 → T1 = T2.
+lemma tpss_inv_refl_O2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 0] â\96* T2 → T1 = T2.
 #L #T1 #T2 #d #H @(tpss_ind … H) -T2
 [ //
 | #T #T2 #_ #HT2 #IHT <(tps_inv_refl_O2 … HT2) -HT2 //
index 23d571549513f5359e050d3930bda099d3131e58..89c767133b48317e8a15a4135087c2534c411b3e 100644 (file)
@@ -21,8 +21,8 @@ include "Basic_2/unfold/tpss.ma".
 
 lemma tpss_subst: ∀L,K,V,U1,i,d,e.
                   d ≤ i → i < d + e →
-                  â\87\93[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V â\86\92 K â\8a¢ V [0, d + e - i - 1] â\89«* U1 →
-                  â\88\80U2. â\87\91[0, i + 1] U1 â\89¡ U2 â\86\92 L â\8a¢ #i [d, e] â\89«* U2.
+                  â\87©[0, i] L â\89¡ K. ð\9d\95\93{Abbr} V â\86\92 K â\8a¢ V [0, d + e - i - 1] â\96* U1 →
+                  â\88\80U2. â\87§[0, i + 1] U1 â\89¡ U2 â\86\92 L â\8a¢ #i [d, e] â\96* U2.
 #L #K #V #U1 #i #d #e #Hdi #Hide #HLK #H @(tpss_ind … H) -U1
 [ /3 width=4/
 | #U #U1 #_ #HU1 #IHU #U2 #HU12
@@ -36,12 +36,12 @@ qed.
 
 (* Advanced inverion lemmas *************************************************)
 
-lemma tpss_inv_atom1: â\88\80L,T2,I,d,e. L â\8a¢ ð\9d\95\92{I} [d, e] â\89«* T2 →
+lemma tpss_inv_atom1: â\88\80L,T2,I,d,e. L â\8a¢ ð\9d\95\92{I} [d, e] â\96* T2 →
                       T2 = 𝕒{I} ∨
                       ∃∃K,V1,V2,i. d ≤ i & i < d + e &
-                                   â\87\93[O, i] L ≡ K. 𝕓{Abbr} V1 &
-                                   K â\8a¢ V1 [0, d + e - i - 1] â\89«* V2 &
-                                   â\87\91[O, i + 1] V2 ≡ T2 &
+                                   â\87©[O, i] L ≡ K. 𝕓{Abbr} V1 &
+                                   K â\8a¢ V1 [0, d + e - i - 1] â\96* V2 &
+                                   â\87§[O, i + 1] V2 ≡ T2 &
                                    I = LRef i.
 #L #T2 #I #d #e #H @(tpss_ind … H) -T2
 [ /2 width=1/
@@ -56,29 +56,29 @@ lemma tpss_inv_atom1: ∀L,T2,I,d,e. L ⊢ 𝕒{I} [d, e] ≫* T2 →
 ]
 qed-.
 
-lemma tpss_inv_lref1: â\88\80L,T2,i,d,e. L â\8a¢ #i [d, e] â\89«* T2 →
+lemma tpss_inv_lref1: â\88\80L,T2,i,d,e. L â\8a¢ #i [d, e] â\96* T2 →
                       T2 = #i ∨
                       ∃∃K,V1,V2. d ≤ i & i < d + e &
-                                 â\87\93[O, i] L ≡ K. 𝕓{Abbr} V1 &
-                                 K â\8a¢ V1 [0, d + e - i - 1] â\89«* V2 &
-                                 â\87\91[O, i + 1] V2 ≡ T2.
+                                 â\87©[O, i] L ≡ K. 𝕓{Abbr} V1 &
+                                 K â\8a¢ V1 [0, d + e - i - 1] â\96* V2 &
+                                 â\87§[O, i + 1] V2 ≡ T2.
 #L #T2 #i #d #e #H
 elim (tpss_inv_atom1 … H) -H /2 width=1/
 * #K #V1 #V2 #j #Hdj #Hjde #HLK #HV12 #HVT2 #H destruct /3 width=6/
 qed-.
 
-lemma tpss_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\89«* T2 →
-                         â\88\80K,V. â\87\93[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
+lemma tpss_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\96* T2 →
+                         â\88\80K,V. â\87©[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
 #L #T1 #T2 #d #H #K #V #HLK @(tpss_ind … H) -T2 //
 #T #T2 #_ #HT2 #IHT <(tps_inv_refl_SO2 … HT2 … HLK) //
 qed-.
 
 (* Relocation properties ****************************************************)
 
-lemma tpss_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89«* T2 →
-                    â\88\80L,U1,d,e. dt + et â\89¤ d â\86\92 â\87\93[d, e] L ≡ K →
-                    â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87\91[d, e] T2 ≡ U2 →
-                    L â\8a¢ U1 [dt, et] â\89«* U2.
+lemma tpss_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96* T2 →
+                    â\88\80L,U1,d,e. dt + et â\89¤ d â\86\92 â\87©[d, e] L ≡ K →
+                    â\87§[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87§[d, e] T2 ≡ U2 →
+                    L â\8a¢ U1 [dt, et] â\96* U2.
 #K #T1 #T2 #dt #et #H #L #U1 #d #e #Hdetd #HLK #HTU1 @(tpss_ind … H) -T2
 [ #U2 #H >(lift_mono … HTU1 … H) -H //
 | -HTU1 #T #T2 #_ #HT2 #IHT #U2 #HTU2
@@ -88,10 +88,10 @@ lemma tpss_lift_le: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫* T2 →
 ]
 qed.
 
-lemma tpss_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89«* T2 →
+lemma tpss_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96* T2 →
                     ∀L,U1,d,e. dt ≤ d → d ≤ dt + et →
-                    â\87\93[d, e] L â\89¡ K â\86\92 â\87\91[d, e] T1 ≡ U1 →
-                    â\88\80U2. â\87\91[d, e] T2 â\89¡ U2 â\86\92 L â\8a¢ U1 [dt, et + e] â\89«* U2.
+                    â\87©[d, e] L â\89¡ K â\86\92 â\87§[d, e] T1 ≡ U1 →
+                    â\88\80U2. â\87§[d, e] T2 â\89¡ U2 â\86\92 L â\8a¢ U1 [dt, et + e] â\96* U2.
 #K #T1 #T2 #dt #et #H #L #U1 #d #e #Hdtd #Hddet #HLK #HTU1 @(tpss_ind … H) -T2
 [ #U2 #H >(lift_mono … HTU1 … H) -H //
 | -HTU1 #T #T2 #_ #HT2 #IHT #U2 #HTU2
@@ -101,10 +101,10 @@ lemma tpss_lift_be: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫* T2 →
 ]
 qed.
 
-lemma tpss_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89«* T2 →
-                    â\88\80L,U1,d,e. d â\89¤ dt â\86\92 â\87\93[d, e] L ≡ K →
-                    â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87\91[d, e] T2 ≡ U2 →
-                    L â\8a¢ U1 [dt + e, et] â\89«* U2.
+lemma tpss_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96* T2 →
+                    â\88\80L,U1,d,e. d â\89¤ dt â\86\92 â\87©[d, e] L ≡ K →
+                    â\87§[d, e] T1 â\89¡ U1 â\86\92 â\88\80U2. â\87§[d, e] T2 ≡ U2 →
+                    L â\8a¢ U1 [dt + e, et] â\96* U2.
 #K #T1 #T2 #dt #et #H #L #U1 #d #e #Hddt #HLK #HTU1 @(tpss_ind … H) -T2
 [ #U2 #H >(lift_mono … HTU1 … H) -H //
 | -HTU1 #T #T2 #_ #HT2 #IHT #U2 #HTU2
@@ -114,10 +114,10 @@ lemma tpss_lift_ge: ∀K,T1,T2,dt,et. K ⊢ T1 [dt, et] ≫* T2 →
 ]
 qed.
 
-lemma tpss_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89«* U2 →
-                         â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tpss_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96* U2 →
+                         â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                          dt + et ≤ d →
-                         â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\89«* T2 & â\87\91[d, e] T2 ≡ U2.
+                         â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\96¶* T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H #K #d #e #HLK #T1 #HTU1 #Hdetd @(tpss_ind … H) -U2
 [ /2 width=3/
 | -HTU1 #U #U2 #_ #HU2 * #T #HT1 #HTU
@@ -125,10 +125,10 @@ lemma tpss_inv_lift1_le: ∀L,U1,U2,dt,et. L ⊢ U1 [dt, et] ≫* U2 →
 ]
 qed.
 
-lemma tpss_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89«* U2 →
-                         â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tpss_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96* U2 →
+                         â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                          dt ≤ d → d + e ≤ dt + et →
-                         â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\89«* T2 & â\87\91[d, e] T2 ≡ U2.
+                         â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\96¶* T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H #K #d #e #HLK #T1 #HTU1 #Hdtd #Hdedet @(tpss_ind … H) -U2
 [ /2 width=3/
 | -HTU1 #U #U2 #_ #HU2 * #T #HT1 #HTU
@@ -136,10 +136,10 @@ lemma tpss_inv_lift1_be: ∀L,U1,U2,dt,et. L ⊢ U1 [dt, et] ≫* U2 →
 ]
 qed.
 
-lemma tpss_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89«* U2 →
-                         â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tpss_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96* U2 →
+                         â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                          d + e ≤ dt →
-                         â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\89«* T2 & â\87\91[d, e] T2 ≡ U2.
+                         â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\96¶* T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H #K #d #e #HLK #T1 #HTU1 #Hdedt @(tpss_ind … H) -U2
 [ /2 width=3/
 | -HTU1 #U #U2 #_ #HU2 * #T #HT1 #HTU
@@ -148,16 +148,16 @@ lemma tpss_inv_lift1_ge: ∀L,U1,U2,dt,et. L ⊢ U1 [dt, et] ≫* U2 →
 qed.
 
 lemma tpss_inv_lift1_eq: ∀L,U1,U2,d,e.
-                         L â\8a¢ U1 [d, e] â\89«* U2 â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 → U1 = U2.
+                         L â\8a¢ U1 [d, e] â\96¶* U2 â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 → U1 = U2.
 #L #U1 #U2 #d #e #H #T1 #HTU1 @(tpss_ind … H) -U2 //
 #U #U2 #_ #HU2 #IHU destruct
 <(tps_inv_lift1_eq … HU2 … HTU1) -HU2 -HTU1 //
 qed.
 
-lemma tpss_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89«* U2 →
-                            â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tpss_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96* U2 →
+                            â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                             dt ≤ d → dt + et ≤ d + e →
-                            â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\89«* T2 & â\87\91[d, e] T2 ≡ U2.
+                            â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\96¶* T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #H #K #d #e #HLK #T1 #HTU1 #Hdtd #Hdetde @(tpss_ind … H) -U2
 [ /2 width=3/
 | -HTU1 #U #U2 #_ #HU2 * #T #HT1 #HTU
index f07ee8ee36bdc018262d621f6279963488580853..b590152005637a84673658c4a2b9f75898fb002b 100644 (file)
@@ -20,16 +20,16 @@ include "Basic_2/unfold/tpss_tpss.ma".
 (* Properties concerning parallel substitution on local environments ********)
 
 lemma ltps_tpss_conf_ge: ∀L0,L1,T2,U2,d1,e1,d2,e2.
-                         d1 + e1 â\89¤ d2 â\86\92 L0 [d1, e1] â\89« L1 →
-                         L0 â\8a¢ T2 [d2, e2] â\89«* U2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+                         d1 + e1 â\89¤ d2 â\86\92 L0 [d1, e1] â\96 L1 →
+                         L0 â\8a¢ T2 [d2, e2] â\96¶* U2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #Hde1d2 #HL01 #H @(tpss_ind … H) -U2 //
 #U #U2 #_ #HU2 #IHU
 lapply (ltps_tps_conf_ge … HU2 … HL01 ?) -HU2 -HL01 // /2 width=3/
 qed.
 
 lemma ltps_tpss_conf: ∀L0,L1,T2,U2,d1,e1,d2,e2.
-                      L0 [d1, e1] â\89« L1 â\86\92 L0 â\8a¢ T2 [d2, e2] â\89«* U2 →
-                      â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\89«* T & L1 â\8a¢ U2 [d1, e1] â\89«* T.
+                      L0 [d1, e1] â\96¶ L1 â\86\92 L0 â\8a¢ T2 [d2, e2] â\96* U2 →
+                      â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\96¶* T & L1 â\8a¢ U2 [d1, e1] â\96* T.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #HL01 #H @(tpss_ind … H) -U2
 [ /3 width=3/
 | #U #U2 #_ #HU2 * #T #HT2 #HUT
@@ -40,16 +40,16 @@ lemma ltps_tpss_conf: ∀L0,L1,T2,U2,d1,e1,d2,e2.
 qed.
 
 lemma ltps_tpss_trans_ge: ∀L0,L1,T2,U2,d1,e1,d2,e2.
-                          d1 + e1 â\89¤ d2 â\86\92 L1 [d1, e1] â\89« L0 →
-                          L0 â\8a¢ T2 [d2, e2] â\89«* U2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\89«* U2.
+                          d1 + e1 â\89¤ d2 â\86\92 L1 [d1, e1] â\96 L0 →
+                          L0 â\8a¢ T2 [d2, e2] â\96¶* U2 â\86\92 L1 â\8a¢ T2 [d2, e2] â\96* U2.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #Hde1d2 #HL10 #H @(tpss_ind … H) -U2 //
 #U #U2 #_ #HU2 #IHU
 lapply (ltps_tps_trans_ge … HU2 … HL10 ?) -HU2 -HL10 // /2 width=3/
 qed.
 
 lemma ltps_tpss_trans_down: ∀L0,L1,T2,U2,d1,e1,d2,e2. d2 + e2 ≤ d1 →
-                            L1 [d1, e1] â\89« L0 â\86\92 L0 â\8a¢ T2 [d2, e2] â\89«* U2 →
-                            â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\89«* T & L0 â\8a¢ T [d1, e1] â\89«* U2.
+                            L1 [d1, e1] â\96¶ L0 â\86\92 L0 â\8a¢ T2 [d2, e2] â\96* U2 →
+                            â\88\83â\88\83T. L1 â\8a¢ T2 [d2, e2] â\96¶* T & L0 â\8a¢ T [d1, e1] â\96* U2.
 #L0 #L1 #T2 #U2 #d1 #e1 #d2 #e2 #Hde2d1 #HL10 #H @(tpss_ind … H) -U2
 [ /3 width=3/
 | #U #U2 #_ #HU2 * #T #HT2 #HTU
@@ -60,8 +60,8 @@ lemma ltps_tpss_trans_down: ∀L0,L1,T2,U2,d1,e1,d2,e2. d2 + e2 ≤ d1 →
 qed.
 
 fact ltps_tps_trans_eq_aux: ∀Y1,X2,L1,T2,U2,d,e.
-                            L1 â\8a¢ T2 [d, e] â\89« U2 â\86\92 â\88\80L0. L0 [d, e] â\89« L1 →
-                            Y1 = L1 â\86\92 X2 = T2 â\86\92 L0 â\8a¢ T2 [d, e] â\89«* U2.
+                            L1 â\8a¢ T2 [d, e] â\96¶ U2 â\86\92 â\88\80L0. L0 [d, e] â\96 L1 →
+                            Y1 = L1 â\86\92 X2 = T2 â\86\92 L0 â\8a¢ T2 [d, e] â\96* U2.
 #Y1 #X2 @(cw_wf_ind … Y1 X2) -Y1 -X2 #Y1 #X2 #IH
 #L1 #T2 #U2 #d #e * -L1 -T2 -U2 -d -e
 [ //
@@ -84,12 +84,12 @@ fact ltps_tps_trans_eq_aux: ∀Y1,X2,L1,T2,U2,d,e.
 ]
 qed.
 
-lemma ltps_tps_trans_eq: â\88\80L1,T2,U2,d,e. L1 â\8a¢ T2 [d, e] â\89« U2 →
-                         â\88\80L0. L0 [d, e] â\89« L1 â\86\92 L0 â\8a¢ T2 [d, e] â\89«* U2.
+lemma ltps_tps_trans_eq: â\88\80L1,T2,U2,d,e. L1 â\8a¢ T2 [d, e] â\96 U2 →
+                         â\88\80L0. L0 [d, e] â\96¶ L1 â\86\92 L0 â\8a¢ T2 [d, e] â\96* U2.
 /2 width=5/ qed.
 
-lemma ltps_tpss_trans_eq: â\88\80L0,L1,T2,U2,d,e. L0 [d, e] â\89« L1 →
-                          L1 â\8a¢ T2 [d, e] â\89«* U2 â\86\92 L0 â\8a¢ T2 [d, e] â\89«* U2.
+lemma ltps_tpss_trans_eq: â\88\80L0,L1,T2,U2,d,e. L0 [d, e] â\96 L1 →
+                          L1 â\8a¢ T2 [d, e] â\96¶* U2 â\86\92 L0 â\8a¢ T2 [d, e] â\96* U2.
 #L0 #L1 #T2 #U2 #d #e #HL01 #H @(tpss_ind … H) -U2 //
 #U #U2 #_ #HU2 #IHU @(tpss_trans_eq … IHU) /2 width=3/
 qed.
index 9b40460f21de5b8a3579a10f79bf528abb256315..981402a245ee27f3b1b242bb9f048e406af6f78c 100644 (file)
@@ -19,36 +19,36 @@ include "Basic_2/unfold/tpss_lift.ma".
 
 (* Advanced properties ******************************************************)
 
-lemma tpss_tps: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\89«* T2 â\86\92 L â\8a¢ T1 [d, 1] â\89« T2.
+lemma tpss_tps: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\96¶* T2 â\86\92 L â\8a¢ T1 [d, 1] â\96 T2.
 #L #T1 #T2 #d #H @(tpss_ind … H) -T2 //
 #T #T2 #_ #HT2 #IHT1
 lapply (tps_trans_ge … IHT1 … HT2 ?) //
 qed.
 
-lemma tpss_strip_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\89«* T1 →
-                     â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89« T2 →
-                     â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89« T & L â\8a¢ T2 [d1, e1] â\89«* T.
+lemma tpss_strip_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\96* T1 →
+                     â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96 T2 →
+                     â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶ T & L â\8a¢ T2 [d1, e1] â\96* T.
 /3 width=3/ qed.
 
-lemma tpss_strip_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\89«* T1 →
-                      â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\89« T2 →
+lemma tpss_strip_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\96* T1 →
+                      â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\96 T2 →
                       (d1 + e1 ≤ d2 ∨ d2 + e2 ≤ d1) →
-                      â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\89« T & L1 â\8a¢ T2 [d1, e1] â\89«* T.
+                      â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\96¶ T & L1 â\8a¢ T2 [d1, e1] â\96* T.
 /3 width=3/ qed.
 
-lemma tpss_strap1_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\89«* T0 →
-                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89« T2 → d2 + e2 ≤ d1 →
-                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89« T & L â\8a¢ T [d1, e1] â\89«* T2.
+lemma tpss_strap1_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\96* T0 →
+                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96 T2 → d2 + e2 ≤ d1 →
+                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶ T & L â\8a¢ T [d1, e1] â\96* T2.
 /3 width=3/ qed.
 
-lemma tpss_strap2_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\89« T0 →
-                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89«* T2 → d2 + e2 ≤ d1 →
-                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89«* T & L â\8a¢ T [d1, e1] â\89« T2.
+lemma tpss_strap2_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\96 T0 →
+                        â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96* T2 → d2 + e2 ≤ d1 →
+                        â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶* T & L â\8a¢ T [d1, e1] â\96 T2.
 /3 width=3/ qed.
 
-lemma tpss_split_up: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89«* T2 →
+lemma tpss_split_up: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96* T2 →
                      ∀i. d ≤ i → i ≤ d + e →
-                     â\88\83â\88\83T. L â\8a¢ T1 [d, i - d] â\89«* T & L â\8a¢ T [i, d + e - i] â\89«* T2.
+                     â\88\83â\88\83T. L â\8a¢ T1 [d, i - d] â\96¶* T & L â\8a¢ T [i, d + e - i] â\96* T2.
 #L #T1 #T2 #d #e #H #i #Hdi #Hide @(tpss_ind … H) -T2
 [ /2 width=3/
 | #T #T2 #_ #HT12 * #T3 #HT13 #HT3
@@ -58,10 +58,10 @@ lemma tpss_split_up: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫* T2 →
 ]
 qed.
 
-lemma tpss_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89«* U2 →
-                         â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tpss_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96* U2 →
+                         â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
                          d ≤ dt → dt ≤ d + e → d + e ≤ dt + et →
-                         â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\89«* T2 & â\87\91[d, e] T2 ≡ U2.
+                         â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\96¶* T2 & â\87§[d, e] T2 ≡ U2.
 #L #U1 #U2 #dt #et #HU12 #K #d #e #HLK #T1 #HTU1 #Hddt #Hdtde #Hdedet
 elim (tpss_split_up … HU12 (d + e) ? ?) -HU12 // -Hdedet #U #HU1 #HU2
 lapply (tpss_weak … HU1 d e ? ?) -HU1 // [ >commutative_plus /2 width=1/ ] -Hddt -Hdtde #HU1
@@ -71,23 +71,23 @@ qed.
 
 (* Main properties **********************************************************)
 
-theorem tpss_conf_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\89«* T1 →
-                      â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89«* T2 →
-                      â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89«* T & L â\8a¢ T2 [d1, e1] â\89«* T.
+theorem tpss_conf_eq: â\88\80L,T0,T1,d1,e1. L â\8a¢ T0 [d1, e1] â\96* T1 →
+                      â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96* T2 →
+                      â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶* T & L â\8a¢ T2 [d1, e1] â\96* T.
 /3 width=3/ qed.
 
-theorem tpss_conf_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\89«* T1 →
-                       â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\89«* T2 →
+theorem tpss_conf_neq: â\88\80L1,T0,T1,d1,e1. L1 â\8a¢ T0 [d1, e1] â\96* T1 →
+                       â\88\80L2,T2,d2,e2. L2 â\8a¢ T0 [d2, e2] â\96* T2 →
                        (d1 + e1 ≤ d2 ∨ d2 + e2 ≤ d1) →
-                       â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\89«* T & L1 â\8a¢ T2 [d1, e1] â\89«* T.
+                       â\88\83â\88\83T. L2 â\8a¢ T1 [d2, e2] â\96¶* T & L1 â\8a¢ T2 [d1, e1] â\96* T.
 /3 width=3/ qed.
 
 theorem tpss_trans_eq: ∀L,T1,T,T2,d,e.
-                       L â\8a¢ T1 [d, e] â\89«* T â\86\92 L â\8a¢ T [d, e] â\89«* T2 →
-                       L â\8a¢ T1 [d, e] â\89«* T2. 
+                       L â\8a¢ T1 [d, e] â\96¶* T â\86\92 L â\8a¢ T [d, e] â\96* T2 →
+                       L â\8a¢ T1 [d, e] â\96* T2. 
 /2 width=3/ qed.
 
-theorem tpss_trans_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\89«* T0 →
-                         â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\89«* T2 → d2 + e2 ≤ d1 →
-                         â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\89«* T & L â\8a¢ T [d1, e1] â\89«* T2.
+theorem tpss_trans_down: â\88\80L,T1,T0,d1,e1. L â\8a¢ T1 [d1, e1] â\96* T0 →
+                         â\88\80T2,d2,e2. L â\8a¢ T0 [d2, e2] â\96* T2 → d2 + e2 ≤ d1 →
+                         â\88\83â\88\83T. L â\8a¢ T1 [d2, e2] â\96¶* T & L â\8a¢ T [d1, e1] â\96* T2.
 /3 width=3/ qed.