]> matita.cs.unibo.it Git - helm.git/commitdiff
Merge remote-tracking branch 'origin/matita-lablgtk3'
authorFerruccio Guidi <fguidi@maelstrom.helm.cs.unibo.it>
Tue, 1 Oct 2019 12:52:29 +0000 (14:52 +0200)
committerFerruccio Guidi <fguidi@maelstrom.helm.cs.unibo.it>
Tue, 1 Oct 2019 12:52:29 +0000 (14:52 +0200)
matita 0.99.4 now on master branch

115 files changed:
matita/matita/contribs/lambdadelta/apps_2/examples/ex_cpr_omega.ma
matita/matita/contribs/lambdadelta/apps_2/examples/ex_fpbg_refl.ma
matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma
matita/matita/contribs/lambdadelta/apps_2/functional/flifts_flifts_basic.ma
matita/matita/contribs/lambdadelta/apps_2/functional/mf_cpr.ma
matita/matita/contribs/lambdadelta/apps_2/models/veq_lifts.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_cpm_conf.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_drops.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubv_drops.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_cpcs.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_drops.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_ind.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_preserve.ma
matita/matita/contribs/lambdadelta/basic_2/etc/nta_rest.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta.ma
matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta_ind.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_ntas.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_preserve.ma
matita/matita/contribs/lambdadelta/basic_2/notation/relations/pty_6.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/notation/relations/ptystar_6.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cnuw_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpms.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpms_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpms_cpms.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpms_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cprs_cprs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cprs_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_toeq.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_toeq_vector.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_csx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_csx_vector.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lpx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lprs_cpms.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/lpxs_cpxs.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/rsx_csx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_computation/rsx_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_conversion/cpce.ma
matita/matita/contribs/lambdadelta/basic_2/rt_conversion/cpce_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cnr_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cnx_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpg.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpg_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpm.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpm_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpr.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpr_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpr_drops_basic.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_cpm.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_drops.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpx_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpx_drops_basic.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lpr_lpr.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_drops.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl
matita/matita/contribs/lambdadelta/ground_2/lib/arith.ma
matita/matita/contribs/lambdadelta/ground_2/notation/relations/istype_2.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_max.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_plus.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_shift.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_2/web/ground_2_src.tbl
matita/matita/contribs/lambdadelta/static_2/i_static/rexs_drops.ma
matita/matita/contribs/lambdadelta/static_2/notation/relations/rdropstar_3.ma
matita/matita/contribs/lambdadelta/static_2/notation/relations/rdropstar_4.ma
matita/matita/contribs/lambdadelta/static_2/notation/relations/rlift_4.ma
matita/matita/contribs/lambdadelta/static_2/notation/relations/rliftstar_3.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_drops.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_length.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_lex.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_seq.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_sex.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_vector.ma
matita/matita/contribs/lambdadelta/static_2/relocation/drops_weight.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_basic.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_bind.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_lifts.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_lifts_bind.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_lifts_vector.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_simple.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_tdeq.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_tweq.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_vector.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_weight.ma
matita/matita/contribs/lambdadelta/static_2/relocation/lifts_weight_bind.ma
matita/matita/contribs/lambdadelta/static_2/relocation/sex_sex.ma
matita/matita/contribs/lambdadelta/static_2/s_computation/fqup.ma
matita/matita/contribs/lambdadelta/static_2/s_computation/fqup_drops.ma
matita/matita/contribs/lambdadelta/static_2/s_computation/fqus.ma
matita/matita/contribs/lambdadelta/static_2/s_computation/fqus_drops.ma
matita/matita/contribs/lambdadelta/static_2/s_transition/fqu.ma
matita/matita/contribs/lambdadelta/static_2/static/aaa_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/frees_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/fsle_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/gcp_aaa.ma
matita/matita/contribs/lambdadelta/static_2/static/gcp_cr.ma
matita/matita/contribs/lambdadelta/static_2/static/lsuba_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/lsubc_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/lsubr_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/rdeq_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/rdeq_length.ma
matita/matita/contribs/lambdadelta/static_2/static/req_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/rex_drops.ma
matita/matita/contribs/lambdadelta/static_2/static/rex_length.ma
matita/matita/contribs/lambdadelta/static_2/web/static_2_src.tbl

index 72b4b347cec85096e2d2960bf72f40a3f309ab43..6490866044512e6f2b8587d171e2676e583953d7 100644 (file)
@@ -28,7 +28,7 @@ definition Omega3 (s): term ≝ +ⓓⓝ⋆s.(Delta s).(Omega1 s).
 
 (* Basic properties *********************************************************)
 
-lemma Delta_lifts (f) (s): â¬\86*[f] (Delta s) ≘ (Delta s).
+lemma Delta_lifts (f) (s): â\87§*[f] (Delta s) ≘ (Delta s).
 /4 width=1 by lifts_lref, lifts_bind, lifts_flat/ qed.
 
 (* Basic inversion properties ***********************************************)
index b41ddae8a0b2805a59db7275adc2f36824c2ba59..bbd3ec04eb1cf99c4a134a305c8a4a59200b3daa 100644 (file)
@@ -33,7 +33,7 @@ definition ApplOmega4 (s0) (s): term ≝ ⓐ⋆s.(ApplOmega1 s0 s).
 (* Basic properties *********************************************************)
 
 lemma ApplDelta_lifts (f:rtmap) (s0) (s):
-                      â¬\86*[f] (ApplDelta s0 s) ≘ (ApplDelta s0 s).
+                      â\87§*[f] (ApplDelta s0 s) ≘ (ApplDelta s0 s).
 /5 width=1 by lifts_sort, lifts_lref, lifts_bind, lifts_flat/ qed.
 
 lemma cpr_ApplOmega_12 (h) (G) (L) (s0) (s): ⦃G,L⦄ ⊢ ApplOmega1 s0 s ➡[h] ApplOmega2 s0 s.
index 30b8b65170937fda18daec0d02b4fd0f9e335ae7..b266b3ae831c7a69d63ada7c5d4dd7a18c9d884f 100644 (file)
@@ -49,14 +49,14 @@ lemma flifts_flat (f) (I) (V) (T): ↑*[f](ⓕ{I}V.T) = ⓕ{I}↑*[f]V.↑*[f]T.
 
 (* Main properties **********************************************************)
 
-theorem flifts_lifts: â\88\80T,f. â¬\86*[f]T ≘ ↑*[f]T.
+theorem flifts_lifts: â\88\80T,f. â\87§*[f]T ≘ ↑*[f]T.
 #T elim T -T *
 /2 width=1 by lifts_sort, lifts_lref, lifts_gref, lifts_bind, lifts_flat/
 qed.
 
 (* Main inversion properties ************************************************)
 
-theorem flifts_inv_lifts: â\88\80f,T1,T2. â¬\86*[f]T1 ≘ T2 → ↑*[f]T1 = T2.
+theorem flifts_inv_lifts: â\88\80f,T1,T2. â\87§*[f]T1 ≘ T2 → ↑*[f]T1 = T2.
 #f #T1 #T2 #H elim H -f -T1 -T2 //
 [ #f #i1 #i2 #H <(at_inv_total … H) //
 | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #IHV #IHT <IHV <IHT -V2 -T2 //
index 7ebdc5dab0c7037cd1eb8bd190f7bcbf597977a0..059bcae657248785941ec9edf23b309cc9798df5 100644 (file)
@@ -23,7 +23,7 @@ theorem flifts_basic_swap (T) (d1) (d2) (h1) (h2):
                           d2 ≤ d1 → ↑[d2,h2]↑[d1,h1]T = ↑[h2+d1,h1]↑[d2,h2]T.
 /3 width=1 by flifts_comp, basic_swap/ qed-.
 (*
-lemma flift_join: â\88\80e1,e2,T. â¬\86[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 059a1f66faffa47f260c0f08b55c4095ea92f62d..d4e5d447a84bc00f51ea27efbe7716ac6bfac96d 100644 (file)
@@ -21,7 +21,7 @@ include "apps_2/functional/mf_exteq.ma".
 (* Properties with relocation ***********************************************)
 
 lemma mf_delta_drops (h) (G): ∀K,V1,V2. ⦃G,K⦄ ⊢ V1 ➡[h] V2 →
-                              â\88\80T,L,l. â¬\87*[l] L ≘ K.ⓓV1 →
+                              â\88\80T,L,l. â\87©*[l] L ≘ K.ⓓV1 →
                               ∀gv,lv. ⦃G,L⦄ ⊢ ●[gv,⇡[l←#l]lv]T ➡[h] ●[gv,⇡[l←↑[↑l]V2]lv]T.
 #h #G #K #V1 #V2 #HV #T elim T -T * //
 [ #i #L #l #HKL #gv #lv
index 13a0f9113c23e77285a929b81928b35b8ded52b2..ee36afae2316acdcdc3d91d8deebaedbaefe885f 100644 (file)
@@ -21,7 +21,7 @@ include "apps_2/models/veq.ma".
 (* Forward lemmas with generic relocation ***********************************)
 
 fact lifts_fwd_vpush_aux (M): is_model M → is_extensional M →
-                              â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 → ∀m. 𝐁❴m,1❵ = f →
+                              â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 → ∀m. 𝐁❴m,1❵ = f →
                               ∀gv,lv,d. ⟦T1⟧[gv,lv] ≗{M} ⟦T2⟧[gv,⫯[m←d]lv].
 #M #H1M #H2M #f #T1 #T2 #H elim H -f -T1 -T2
 [ #f #s #m #Hf #gv #lv #d
@@ -66,6 +66,6 @@ fact lifts_fwd_vpush_aux (M): is_model M → is_extensional M →
 qed-.
 
 lemma lifts_SO_fwd_vpush (M) (gv): is_model M → is_extensional M →
-                                   â\88\80T1,T2. â¬\86*[1] T1 ≘ T2 →
+                                   â\88\80T1,T2. â\87§*[1] T1 ≘ T2 →
                                    ∀lv,d. ⟦T1⟧[gv,lv] ≗{M} ⟦T2⟧[gv,⫯[0←d]lv].
 /2 width=3 by lifts_fwd_vpush_aux/ qed-.
index 60f0a5e79b78c84da4244b26353fbb7a141d39c2..683c57b1f99dbedcaeb1560a7df0b9d782dede12 100644 (file)
@@ -34,9 +34,9 @@ fact cnv_cpm_conf_lpr_atom_ess_aux (h) (G) (L1) (L2) (s):
 fact cnv_cpm_conf_lpr_atom_delta_aux (h) (a) (G) (L) (i):
      (∀G0,L0,T0. ⦃G,L,#i⦄ >[h] ⦃G0,L0,T0⦄ → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
      ⦃G,L⦄⊢#i![h,a] →
-     â\88\80K,V. â¬\87*[i]L ≘ K.ⓓV →
+     â\88\80K,V. â\87©*[i]L ≘ K.ⓓV →
      ∀n,XV. ⦃G,K⦄ ⊢ V ➡[n,h] XV →
-     â\88\80X. â¬\86*[↑i]XV ≘ X →
+     â\88\80X. â\87§*[↑i]XV ≘ X →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ #i ➡*[n,h] T & ⦃G,L2⦄ ⊢ X ➡*[h] T.
 #h #a #G #L #i #IH #HT #K #V #HLK #n #XV #HVX #X #HXV #L1 #HL1 #L2 #HL2
@@ -56,9 +56,9 @@ qed-.
 fact cnv_cpm_conf_lpr_atom_ell_aux (h) (a) (G) (L) (i):
      (∀G0,L0,T0. ⦃G,L,#i⦄ >[h] ⦃G0,L0,T0⦄ → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
      ⦃G,L⦄⊢#i![h,a] →
-     â\88\80K,W. â¬\87*[i]L ≘ K.ⓛW →
+     â\88\80K,W. â\87©*[i]L ≘ K.ⓛW →
      ∀n,XW. ⦃G,K⦄ ⊢ W ➡[n,h] XW →
-     â\88\80X. â¬\86*[↑i]XW ≘ X →
+     â\88\80X. â\87§*[↑i]XW ≘ X →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ #i ➡*[↑n,h] T & ⦃G,L2⦄ ⊢ X ➡*[h] T.
 #h #a #G #L #i #IH #HT #K #W #HLK #n #XW #HWX #X #HXW #L1 #HL1 #L2 #HL2
@@ -78,9 +78,9 @@ qed-.
 fact cnv_cpm_conf_lpr_delta_delta_aux (h) (a) (I) (G) (L) (i):
      (∀G0,L0,T0. ⦃G,L,#i⦄ >[h] ⦃G0,L0,T0⦄ → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
      ⦃G,L⦄⊢#i![h,a] →
-     â\88\80K1,V1. â¬\87*[i]L â\89\98 K1.â\93\91{I}V1 â\86\92 â\88\80K2,V2. â¬\87*[i]L ≘ K2.ⓑ{I}V2 →
+     â\88\80K1,V1. â\87©*[i]L â\89\98 K1.â\93\91{I}V1 â\86\92 â\88\80K2,V2. â\87©*[i]L ≘ K2.ⓑ{I}V2 →
      ∀n1,XV1. ⦃G,K1⦄ ⊢ V1 ➡[n1,h] XV1 → ∀n2,XV2. ⦃G,K2⦄ ⊢ V2 ➡[n2,h] XV2 →
-     â\88\80X1. â¬\86*[â\86\91i]XV1 â\89\98 X1 â\86\92 â\88\80X2. â¬\86*[↑i]XV2 ≘ X2 →
+     â\88\80X1. â\87§*[â\86\91i]XV1 â\89\98 X1 â\86\92 â\88\80X2. â\87§*[↑i]XV2 ≘ X2 →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ X1 ➡*[n2-n1,h] T & ⦃G,L2⦄ ⊢ X2 ➡*[n1-n2,h] T.
 #h #a #I #G #L #i #IH #HT
@@ -102,7 +102,7 @@ elim (cpms_lifts_sn … HVX1 … HLK1 … HXV1) -XV1 -HLK1 #W1 #HVW1 #HXW1
 qed-.
 
 fact cnv_cpm_conf_lpr_delta_ell_aux (L) (K1) (K2) (V) (W) (i):
-     â¬\87*[i]L â\89\98 K1.â\93\93V â\86\92 â¬\87*[i]L ≘ K2.ⓛW → ⊥.
+     â\87©*[i]L â\89\98 K1.â\93\93V â\86\92 â\87©*[i]L ≘ K2.ⓛW → ⊥.
 #L #K1 #K2 #V #W #i #HLK1 #HLK2
 lapply (drops_mono … HLK2 … HLK1) -L -i #H destruct
 qed-.
@@ -128,7 +128,7 @@ fact cnv_cpm_conf_lpr_bind_zeta_aux (h) (a) (G) (L) (V) (T):
      (∀G0,L0,T0. ⦃G,L,+ⓓV.T⦄ >[h] ⦃G0,L0,T0⦄ → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
      ⦃G,L⦄ ⊢ +ⓓV.T ![h,a] →
      ∀V1. ⦃G,L⦄ ⊢V ➡[h] V1 → ∀n1,T1. ⦃G,L.ⓓV⦄ ⊢ T ➡[n1,h] T1 → 
-     â\88\80T2. â¬\86*[1]T2 ≘ T → ∀n2,XT2. ⦃G,L⦄ ⊢ T2 ➡[n2,h] XT2 →
+     â\88\80T2. â\87§*[1]T2 ≘ T → ∀n2,XT2. ⦃G,L⦄ ⊢ T2 ➡[n2,h] XT2 →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ +ⓓV1.T1 ➡*[n2-n1,h] T & ⦃G,L2⦄ ⊢ XT2 ➡*[n1-n2,h] T.
 #h #a #G0 #L0 #V0 #T0 #IH #H0
@@ -147,7 +147,7 @@ qed-.
 fact cnv_cpm_conf_lpr_zeta_zeta_aux (h) (a) (G) (L) (V) (T):
      (∀G0,L0,T0. ⦃G,L,+ⓓV.T⦄ >[h] ⦃G0,L0,T0⦄ → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
      ⦃G,L⦄ ⊢ +ⓓV.T ![h,a] →
-     â\88\80T1. â¬\86*[1]T1 â\89\98 T â\86\92 â\88\80T2. â¬\86*[1]T2 ≘ T →
+     â\88\80T1. â\87§*[1]T1 â\89\98 T â\86\92 â\88\80T2. â\87§*[1]T2 ≘ T →
      ∀n1,XT1. ⦃G,L⦄ ⊢ T1 ➡[n1,h] XT1 → ∀n2,XT2. ⦃G,L⦄ ⊢ T2 ➡[n2,h] XT2 →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ XT1 ➡*[n2-n1,h] T & ⦃G,L2⦄ ⊢ XT2 ➡*[n1-n2,h] T.
@@ -208,7 +208,7 @@ fact cnv_cpm_conf_lpr_appl_theta_aux (h) (a) (p) (G) (L) (V) (W) (T):
      ∀V1. ⦃G,L⦄ ⊢ V ➡[h] V1 → ∀V2. ⦃G,L⦄ ⊢ V ➡[h] V2 →
      ∀W2. ⦃G,L⦄ ⊢ W ➡[h] W2 →
      ∀n1,T1. ⦃G,L⦄ ⊢ ⓓ{p}W.T ➡[n1,h] T1 → ∀n2,T2. ⦃G,L.ⓓW⦄ ⊢ T ➡[n2,h] T2 →
-     â\88\80U2. â¬\86*[1]V2 ≘ U2 →
+     â\88\80U2. â\87§*[1]V2 ≘ U2 →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ ⓐV1.T1 ➡*[n2-n1,h] T & ⦃G,L2⦄ ⊢ ⓓ{p}W2.ⓐU2.T2 ➡*[n1-n2,h] T.
 #h #a #p #G0 #L0 #V0 #W0 #T0 #IH #H0
@@ -261,7 +261,7 @@ fact cnv_cpm_conf_lpr_theta_theta_aux (h) (a) (p) (G) (L) (V) (W) (T):
      ∀V1. ⦃G,L⦄ ⊢ V ➡[h] V1 → ∀V2. ⦃G,L⦄ ⊢ V ➡[h] V2 →
      ∀W1. ⦃G,L⦄ ⊢ W ➡[h] W1 → ∀W2. ⦃G,L⦄ ⊢ W ➡[h] W2 →
      ∀n1,T1. ⦃G,L.ⓓW⦄ ⊢ T ➡[n1,h] T1 → ∀n2,T2. ⦃G,L.ⓓW⦄ ⊢ T ➡[n2,h] T2 →
-     â\88\80U1. â¬\86*[1]V1 â\89\98 U1 â\86\92 â\88\80U2. â¬\86*[1]V2 ≘ U2 →
+     â\88\80U1. â\87§*[1]V1 â\89\98 U1 â\86\92 â\88\80U2. â\87§*[1]V2 ≘ U2 →
      ∀L1. ⦃G,L⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G,L⦄ ⊢ ➡[h] L2 →
      ∃∃T. ⦃G,L1⦄ ⊢ ⓓ{p}W1.ⓐU1.T1 ➡*[n2-n1,h] T & ⦃G,L2⦄ ⊢ ⓓ{p}W2.ⓐU2.T2 ➡*[n1-n2,h] T.
 #h #a #p #G0 #L0 #V0 #W0 #T0 #IH #H0
index bb1e540fea8a71e0e439c194cddf121c4bc68b1f..25bf405df87422cd0aa11e66d05705d4951b8be9 100644 (file)
@@ -22,7 +22,7 @@ include "basic_2/dynamic/cnv.ma".
 (* Basic_2A1: uses: snv_lref *)
 lemma cnv_lref_drops (h) (a) (G):
       ∀I,K,V,i,L. ⦃G,K⦄ ⊢ V ![h,a] →
-      â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,L⦄ ⊢ #i ![h,a].
+      â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,L⦄ ⊢ #i ![h,a].
 #h #a #G #I #K #V #i elim i -i
 [ #L #HV #H
   lapply (drops_fwd_isid … H ?) -H // #H destruct
@@ -38,7 +38,7 @@ qed.
 (* Basic_2A1: uses: snv_inv_lref *)
 lemma cnv_inv_lref_drops (h) (a) (G):
       ∀i,L. ⦃G,L⦄ ⊢ #i ![h,a] →
-      â\88\83â\88\83I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ V ![h,a].
+      â\88\83â\88\83I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ V ![h,a].
 #h #a #G #i elim i -i
 [ #L #H
   elim (cnv_inv_zero … H) -H #I #K #V #HV #H destruct
@@ -52,14 +52,14 @@ qed-.
 
 lemma cnv_inv_lref_pair (h) (a) (G):
       ∀i,L. ⦃G,L⦄ ⊢ #i ![h,a] →
-      â\88\80I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ![h,a].
+      â\88\80I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ![h,a].
 #h #a #G #i #L #H #I #K #V #HLK
 elim (cnv_inv_lref_drops … H) -H #Z #Y #X #HLY #HX
 lapply (drops_mono … HLY … HLK) -L #H destruct //
 qed-.
 
 lemma cnv_inv_lref_atom (h) (a) (b) (G):
-      â\88\80i,L. â¦\83G,Lâ¦\84 â\8a¢ #i ![h,a] â\86\92 â¬\87*[b,𝐔❴i❵] L ≘ ⋆ → ⊥.
+      â\88\80i,L. â¦\83G,Lâ¦\84 â\8a¢ #i ![h,a] â\86\92 â\87©*[b,𝐔❴i❵] L ≘ ⋆ → ⊥.
 #h #a #b #G #i #L #H #Hi
 elim (cnv_inv_lref_drops … H) -H #Z #Y #X #HLY #_
 lapply (drops_gen b … HLY) -HLY #HLY
@@ -68,7 +68,7 @@ qed-.
 
 lemma cnv_inv_lref_unit (h) (a) (G):
       ∀i,L. ⦃G,L⦄ ⊢ #i ![h,a] →
-      â\88\80I,K. â¬\87*[i] L ≘ K.ⓤ{I} → ⊥.
+      â\88\80I,K. â\87©*[i] L ≘ K.ⓤ{I} → ⊥.
 #h #a #G #i #L #H #I #K #HLK
 elim (cnv_inv_lref_drops … H) -H #Z #Y #X #HLY #_
 lapply (drops_mono … HLY … HLK) -L #H destruct
index 6b0daf223665780c6e1cf4516219e732a8da1296..859eefd95dad0b9b8d8af6801bbd2599c797a825 100644 (file)
@@ -23,8 +23,8 @@ include "basic_2/dynamic/lsubv.ma".
 (* Basic_2A1: includes: lsubsv_drop_O1_conf *)
 lemma lsubv_drops_conf_isuni (h) (a) (G):
       ∀L1,L2. G ⊢ L1 ⫃![h,a] L2 →
-      â\88\80b,f,K1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L1 ≘ K1 →
-      â\88\83â\88\83K2. G â\8a¢ K1 â«\83![h,a] K2 & â¬\87*[b,f] L2 ≘ K2.
+      â\88\80b,f,K1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L1 ≘ K1 →
+      â\88\83â\88\83K2. G â\8a¢ K1 â«\83![h,a] K2 & â\87©*[b,f] L2 ≘ K2.
 #h #a #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #HL12 #IH #b #f #K1 #Hf #H
@@ -48,8 +48,8 @@ qed-.
 (* Basic_2A1: includes: lsubsv_drop_O1_trans *)
 lemma lsubv_drops_trans_isuni (h) (a) (G):
       ∀L1,L2. G ⊢ L1 ⫃![h,a] L2 →
-      â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-      â\88\83â\88\83K1. G â\8a¢ K1 â«\83![h,a] K2 & â¬\87*[b,f] L1 ≘ K1.
+      â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+      â\88\83â\88\83K1. G â\8a¢ K1 â«\83![h,a] K2 & â\87©*[b,f] L1 ≘ K1.
 #h #a #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #HL12 #IH #b #f #K2 #Hf #H
index 2a3eafa2843a4ba0676b69de06371a9700497576..b0814238a82c3fb53f9792f89ed688ebcfe59ab3 100644 (file)
@@ -43,7 +43,7 @@ qed-.
 (* Basic_1: uses: ty3_repellent *)
 theorem nta_abst_repellent (h) (a) (p) (G) (K):
         ∀W,T,U1. ⦃G,K⦄ ⊢ ⓛ{p}W.T :[h,a] U1 →
-        â\88\80U2. â¦\83G,K.â\93\9bWâ¦\84 â\8a¢ T :[h,a] U2 â\86\92 â¬\86*[1] U1 ≘ U2 → ⊥.
+        â\88\80U2. â¦\83G,K.â\93\9bWâ¦\84 â\8a¢ T :[h,a] U2 â\86\92 â\87§*[1] U1 ≘ U2 → ⊥.
 #h #a #p #G #K #W #T #U1 #H1 #U2 #H2 #HU12
 elim (nta_fwd_aaa … H2) -H2 #A2 #H2T #H2U2
 elim (nta_fwd_aaa … H1) -H1 #X1 #H1 #HU1
index 4e505925c9cc92ec08528f72af7bf719dfda80aa..d03ca146b064fa8cd64feaa1f0ff62be81cbee81 100644 (file)
@@ -54,7 +54,7 @@ qed-.
 
 lemma nta_inv_ldec_sn_cnv (h) (a) (G) (K) (V):
       ∀X2. ⦃G,K.ⓛV⦄ ⊢ #0 :[h,a] X2 →
-      â\88\83â\88\83U. â¦\83G,Kâ¦\84 â\8a¢ V ![h,a] & â¬\86*[1] V ≘ U & ⦃G,K.ⓛV⦄ ⊢ U ⬌*[h] X2 & ⦃G,K.ⓛV⦄ ⊢ X2 ![h,a].
+      â\88\83â\88\83U. â¦\83G,Kâ¦\84 â\8a¢ V ![h,a] & â\87§*[1] V ≘ U & ⦃G,K.ⓛV⦄ ⊢ U ⬌*[h] X2 & ⦃G,K.ⓛV⦄ ⊢ X2 ![h,a].
 #h #a #G #Y #X #X2 #H
 elim (cnv_inv_cast … H) -H #X1 #HX2 #H1 #HX21 #H2
 elim (cnv_inv_zero … H1) -H1 #Z #K #V #HV #H destruct
index 29cce8c0c0e16dc71d4ebe0c05e7b49a131bf6cd..e054072d2baf80b37cb574db53631bd15851b852 100644 (file)
@@ -21,7 +21,7 @@ include "basic_2/dynamic/nta.ma".
 
 lemma nta_ldef (h) (a) (G) (K):
       ∀V,W. ⦃G,K⦄ ⊢ V :[h,a] W →
-      â\88\80U. â¬\86*[1] W ≘ U → ⦃G,K.ⓓV⦄ ⊢ #0 :[h,a] U.
+      â\88\80U. â\87§*[1] W ≘ U → ⦃G,K.ⓓV⦄ ⊢ #0 :[h,a] U.
 #h #a #G #K #V #W #H #U #HWU
 elim (cnv_inv_cast … H) -H #X #HW #HV #HWX #HVX
 lapply (cnv_lifts … HW (Ⓣ) … (K.ⓓV) … HWU) -HW
@@ -33,7 +33,7 @@ qed.
 
 lemma nta_ldec_cnv (h) (a) (G) (K):
       ∀W. ⦃G,K⦄ ⊢ W ![h,a] →
-      â\88\80U. â¬\86*[1] W ≘ U → ⦃G,K.ⓛW⦄ ⊢ #0 :[h,a] U.
+      â\88\80U. â\87§*[1] W ≘ U → ⦃G,K.ⓛW⦄ ⊢ #0 :[h,a] U.
 #h #a #G #K #W #HW #U #HWU
 lapply (cnv_lifts … HW (Ⓣ) … (K.ⓛW) … HWU)
 /3 width=5 by cnv_zero, cnv_cast, cpms_ell, drops_refl, drops_drop/
@@ -41,7 +41,7 @@ qed.
 
 lemma nta_lref (h) (a) (I) (G) (K):
       ∀T,i. ⦃G,K⦄ ⊢ #i :[h,a] T →
-      â\88\80U. â¬\86*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #(↑i) :[h,a] U.
+      â\88\80U. â\87§*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #(↑i) :[h,a] U.
 #h #a #I #G #K #T #i #H #U #HTU
 elim (cnv_inv_cast … H) -H #X #HT #Hi #HTX #H2
 lapply (cnv_lifts … HT (Ⓣ) … (K.ⓘ{I}) … HTU) -HT
@@ -76,7 +76,7 @@ lemma nta_lifts_bi (h) (a) (G): d_liftable2_bi … lifts (nta a h G).
 (* Basic_2A1: was by definition: nta_ldef ntaa_ldef *)
 lemma nta_ldef_drops (h) (a) (G) (K) (L) (i):
       ∀V,W. ⦃G,K⦄ ⊢ V :[h,a] W →
-      â\88\80U. â¬\86*[â\86\91i] W â\89\98 U â\86\92 â¬\87*[i] L ≘ K.ⓓV → ⦃G,L⦄ ⊢ #i :[h,a] U.
+      â\88\80U. â\87§*[â\86\91i] W â\89\98 U â\86\92 â\87©*[i] L ≘ K.ⓓV → ⦃G,L⦄ ⊢ #i :[h,a] U.
 #h #a #G #K #L #i #V #W #HVW #U #HWU #HLK
 elim (lifts_split_trans … HWU (𝐔❴1❵) (𝐔❴i❵)) [| // ] #X #HWX #HXU
 /3 width=9 by nta_lifts_bi, nta_ldef/
@@ -84,7 +84,7 @@ qed.
 
 lemma nta_ldec_drops_cnv (h) (a) (G) (K) (L) (i):
       ∀W. ⦃G,K⦄ ⊢ W ![h,a] →
-      â\88\80U. â¬\86*[â\86\91i] W â\89\98 U â\86\92 â¬\87*[i] L ≘ K.ⓛW → ⦃G,L⦄ ⊢ #i :[h,a] U.
+      â\88\80U. â\87§*[â\86\91i] W â\89\98 U â\86\92 â\87©*[i] L ≘ K.ⓛW → ⦃G,L⦄ ⊢ #i :[h,a] U.
 #h #a #G #K #L #i #W #HW #U #HWU #HLK
 elim (lifts_split_trans … HWU (𝐔❴1❵) (𝐔❴i❵)) [| // ] #X #HWX #HXU
 /3 width=9 by nta_lifts_bi, nta_ldec_cnv/
index 03ed818b1c255db1cfd8205a2e7967b12a2b87a9..325188276afe50faa8667487c2c457f15d02144d 100644 (file)
@@ -24,12 +24,12 @@ include "basic_2/dynamic/nta_preserve.ma".
 lemma nta_ind_rest_cnv (h) (Q:relation4 …):
       (∀G,L,s. Q G L (⋆s) (⋆(⫯[h]s))) →
       (∀G,K,V,W,U.
-        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9f\90] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9f\90] W â\86\92 â\87§*[1] W ≘ U →
         Q G K V W → Q G (K.ⓓV) (#0) U
       ) →
-      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9f\90] â\86\92 â¬\86*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
+      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9f\90] â\86\92 â\87§*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
       (∀I,G,K,W,U,i.
-        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9f\90] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9f\90] W â\86\92 â\87§*[1] W ≘ U →
         Q G K (#i) W → Q G (K.ⓘ{I}) (#↑i) U
       ) →
       (∀p,I,G,K,V,T,U.
@@ -81,12 +81,12 @@ qed-.
 lemma nta_ind_ext_cnv_mixed (h) (Q:relation4 …):
       (∀G,L,s. Q G L (⋆s) (⋆(⫯[h]s))) →
       (∀G,K,V,W,U.
-        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9b\9a] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9b\9a] W â\86\92 â\87§*[1] W ≘ U →
         Q G K V W → Q G (K.ⓓV) (#0) U
       ) →
-      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9b\9a] â\86\92 â¬\86*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
+      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9b\9a] â\86\92 â\87§*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
       (∀I,G,K,W,U,i.
-        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9b\9a] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9b\9a] W â\86\92 â\87§*[1] W ≘ U →
         Q G K (#i) W → Q G (K.ⓘ{I}) (#↑i) U
       ) →
       (∀p,I,G,K,V,T,U.
@@ -146,12 +146,12 @@ qed-.
 lemma nta_ind_ext_cnv (h) (Q:relation4 …):
       (∀G,L,s. Q G L (⋆s) (⋆(⫯[h]s))) →
       (∀G,K,V,W,U.
-        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9b\9a] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ V :[h,ð\9d\9b\9a] W â\86\92 â\87§*[1] W ≘ U →
         Q G K V W → Q G (K.ⓓV) (#0) U
       ) →
-      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9b\9a] â\86\92 â¬\86*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
+      (â\88\80G,K,W,U. â¦\83G,Kâ¦\84 â\8a¢ W ![h,ð\9d\9b\9a] â\86\92 â\87§*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
       (∀I,G,K,W,U,i.
-        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9b\9a] W â\86\92 â¬\86*[1] W ≘ U →
+        â¦\83G,Kâ¦\84 â\8a¢ #i :[h,ð\9d\9b\9a] W â\86\92 â\87§*[1] W ≘ U →
         Q G K (#i) W → Q G (K.ⓘ{I}) (#↑i) U
       ) →
       (∀p,I,G,K,V,T,U.
index de01c6a0d3774a81e12ef3d7ab43e70c9718ba32..44dac970e116e598f4c4c4fe13a309953588ce2f 100644 (file)
@@ -100,7 +100,7 @@ qed-.
 
 lemma nta_inv_ldef_sn (h) (a) (G) (K) (V):
       ∀X2. ⦃G,K.ⓓV⦄ ⊢ #0 :[h,a] X2 →
-      â\88\83â\88\83W,U. â¦\83G,Kâ¦\84 â\8a¢ V :[h,a] W & â¬\86*[1] W ≘ U & ⦃G,K.ⓓV⦄ ⊢ U ⬌*[h] X2 & ⦃G,K.ⓓV⦄ ⊢ X2 ![h,a].
+      â\88\83â\88\83W,U. â¦\83G,Kâ¦\84 â\8a¢ V :[h,a] W & â\87§*[1] W ≘ U & ⦃G,K.ⓓV⦄ ⊢ U ⬌*[h] X2 & ⦃G,K.ⓓV⦄ ⊢ X2 ![h,a].
 #h #a #G #Y #X #X2 #H
 elim (cnv_inv_cast … H) -H #X1 #HX2 #H1 #HX21 #H2
 elim (cnv_inv_zero … H1) -H1 #Z #K #V #HV #H destruct
@@ -113,7 +113,7 @@ qed-.
 
 lemma nta_inv_lref_sn (h) (a) (G) (L):
       ∀X2,i. ⦃G,L⦄ ⊢ #↑i :[h,a] X2 →
-      â\88\83â\88\83I,K,T2,U2. â¦\83G,Kâ¦\84 â\8a¢ #i :[h,a] T2 & â¬\86*[1] T2 ≘ U2 & ⦃G,K.ⓘ{I}⦄ ⊢ U2 ⬌*[h] X2 & ⦃G,K.ⓘ{I}⦄ ⊢ X2 ![h,a] & L = K.ⓘ{I}.
+      â\88\83â\88\83I,K,T2,U2. â¦\83G,Kâ¦\84 â\8a¢ #i :[h,a] T2 & â\87§*[1] T2 ≘ U2 & ⦃G,K.ⓘ{I}⦄ ⊢ U2 ⬌*[h] X2 & ⦃G,K.ⓘ{I}⦄ ⊢ X2 ![h,a] & L = K.ⓘ{I}.
 #h #a #G #L #X2 #i #H
 elim (cnv_inv_cast … H) -H #X1 #HX2 #H1 #HX21 #H2
 elim (cnv_inv_lref … H1) -H1 #I #K #Hi #H destruct
@@ -126,8 +126,8 @@ qed-.
 
 lemma nta_inv_lref_sn_drops_cnv (h) (a) (G) (L): 
       ∀X2,i. ⦃G,L⦄ ⊢ #i :[h,a] X2 →
-      â\88¨â\88¨ â\88\83â\88\83K,V,W,U. â¬\87*[i] L â\89\98 K.â\93\93V & â¦\83G,Kâ¦\84 â\8a¢ V :[h,a] W & â¬\86*[↑i] W ≘ U & ⦃G,L⦄ ⊢ U ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a]
-       | â\88\83â\88\83K,W,U. â¬\87*[i] L â\89\98 K. â\93\9bW & â¦\83G,Kâ¦\84 â\8a¢ W ![h,a] & â¬\86*[↑i] W ≘ U & ⦃G,L⦄ ⊢ U ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a].
+      â\88¨â\88¨ â\88\83â\88\83K,V,W,U. â\87©*[i] L â\89\98 K.â\93\93V & â¦\83G,Kâ¦\84 â\8a¢ V :[h,a] W & â\87§*[↑i] W ≘ U & ⦃G,L⦄ ⊢ U ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a]
+       | â\88\83â\88\83K,W,U. â\87©*[i] L â\89\98 K. â\93\9bW & â¦\83G,Kâ¦\84 â\8a¢ W ![h,a] & â\87§*[↑i] W ≘ U & ⦃G,L⦄ ⊢ U ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a].
 #h #a #G #L #X2 #i #H
 elim (cnv_inv_cast … H) -H #X1 #HX2 #H1 #HX21 #H2
 elim (cnv_inv_lref_drops … H1) -H1 #I #K #V #HLK #HV
@@ -244,8 +244,8 @@ qed-.
 (* Note: "⦃G, L⦄ ⊢ U2 ⬌*[h] X2" can be "⦃G, L⦄ ⊢ X2 ➡*[h] U2" *)
 lemma nta_inv_lifts_sn (h) (a) (G):
       ∀L,T2,X2. ⦃G,L⦄ ⊢ T2 :[h,a] X2 →
-      â\88\80b,f,K. â¬\87*[b,f] L â\89\98 K â\86\92 â\88\80T1. â¬\86*[f] T1 ≘ T2 →
-      â\88\83â\88\83U1,U2. â¦\83G,Kâ¦\84 â\8a¢ T1 :[h,a] U1 & â¬\86*[f] U1 ≘ U2 & ⦃G,L⦄ ⊢ U2 ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a].
+      â\88\80b,f,K. â\87©*[b,f] L â\89\98 K â\86\92 â\88\80T1. â\87§*[f] T1 ≘ T2 →
+      â\88\83â\88\83U1,U2. â¦\83G,Kâ¦\84 â\8a¢ T1 :[h,a] U1 & â\87§*[f] U1 ≘ U2 & ⦃G,L⦄ ⊢ U2 ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![h,a].
 #h #a #G #L #T2 #X2 #H #b #f #K #HLK #T1 #HT12
 elim (cnv_inv_cast … H) -H #U2 #HX2 #HT2 #HXU2 #HTU2
 lapply (cnv_inv_lifts … HT2 … HLK … HT12) -HT2 #HT1
diff --git a/matita/matita/contribs/lambdadelta/basic_2/etc/nta_rest.etc b/matita/matita/contribs/lambdadelta/basic_2/etc/nta_rest.etc
new file mode 100644 (file)
index 0000000..151dd47
--- /dev/null
@@ -0,0 +1,115 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/rt_transition/cpr_drops_basic.ma".
+include "basic_2/dynamic/nta_ind.ma".
+
+lemma lpr_cpr_conf_cpc_sym (h) (G) (L1):
+      ∀T1,T2:term. ⦃G,L1⦄ ⊢ T1 ➡[h] T2 →
+      ∀L2. ⦃G,L1⦄ ⊢ ➡[h] L2 → ⦃G,L2⦄ ⊢ T2 ⬌*[h] T1.
+#h #G #L1 #T1 #T2 #HT12 #L2 #HL12
+elim (lpr_cpr_conf_dx … HT12 … HL12) -L1 #T #HT1 #HT2
+/3 width=3 by cprs_div, cpm_cpms/
+qed.
+
+(* NATIVE TYPE ASSIGNMENT FOR TERMS *****************************************)
+
+definition IH_nta (h) (G) (L1) (T1) ≝
+           ∀U. ⦃G,L1⦄ ⊢ T1 :[h,𝟐] U → ∀T2. ⦃G,L1⦄ ⊢ T1 ➡[h] T2 →
+           ∀L2. ⦃G,L1⦄ ⊢ ➡[h] L2 → ⦃G,L2⦄ ⊢ T2 :[h,𝟐] U.
+
+definition IH_cnv (h) (G) (L1) (T1) ≝
+           (⦃G,L1⦄ ⊢ T1 ![h,𝟐]) → ∀T2. ⦃G,L1⦄ ⊢ T1 ➡[h] T2 →
+           ∀L2. ⦃G,L1⦄ ⊢ ➡[h] L2 → ⦃G,L2⦄ ⊢ T2 ![h,𝟐].
+
+(* Specific proofs for restricted applicability *****************************)
+
+lemma nta_to_cnv (h) (G) (L1) (T1):
+      IH_nta h G L1 T1 → IH_cnv h G L1 T1.
+#h #G #L1 #T1 #H #HT1 #T2 #HT12 #L2 #HL12
+elim (cnv_nta_sn … HT1) -HT1 #U1 #HTU1
+/3 width=2 by nta_fwd_cnv_sn/
+qed-.
+
+(* Note preservation of type without big-tree theorem *)
+lemma nta_cpr_conf_lpr (h) (G) (L1) (T1): IH_nta h G L1 T1.
+#h #G #L1 #T1 @(fqup_wf_ind (Ⓣ) … G L1 T1) -G -L1 -T1
+#G0 #L0 #T0 #IH #U
+@(insert_eq_0 … T0) #T1
+@(insert_eq_0 … L0) #L1
+@(insert_eq_0 … G0) #G
+#H @(nta_ind_rest_cnv … H) -G -L1 -T1 -U
+[ #G #L1 #s #HG0 #HL0 #HT0 #X #HX #L2 #HL12 destruct -IH
+  lapply (cpr_inv_sort1 … HX) -HX #H destruct //
+| #G #K1 #V1 #W1 #U #HVW1 #HW1U #_ #HG0 #HL0 #HT0 #X #HX #Y #HY destruct
+  elim (lpr_inv_pair_sn … HY) -HY #K2 #V2 #HK12 #HV12 #H destruct
+  elim (cpr_inv_zero1 … HX) -HX
+  [ #H destruct
+    /4 width=6 by nta_ldef, fqu_fqup, fqu_lref_O/
+  | * #Y1 #X1 #X2 #HX12 #HX2 #H destruct -HV12
+    @(nta_lifts_bi … (Ⓣ) … HX2 … HW1U) -X -U
+    /4 width=6 by drops_refl, drops_drop, fqu_fqup, fqu_lref_O/
+  ]
+| #G #K1 #W1 #V1 #HW1 #HWV1 #HG0 #HL0 #HT0 #X #HX #Y #HY destruct
+  elim (lpr_inv_pair_sn … HY) -HY #K2 #W2 #HK12 #HW12 #H destruct
+  elim (cpr_inv_zero1 … HX) -HX
+  [ #H destruct
+    lapply (nta_to_cnv … HW1 … W1 … HK12)
+    [1,2: /3 width=1 by fqu_fqup, fqu_lref_O/ ] #H
+    lapply (cnv_lifts … H (Ⓣ) … (K2.ⓛW2) … HWV1) -H
+    [ /3 width=1 by drops_refl, drops_drop/ ] #HV1
+    elim (cpm_lifts_sn … HW12 (Ⓣ) … (K1.ⓛW2) … HWV1) -HWV1
+    [2: /3 width=1 by drops_refl, drops_drop/ ] #V2 #HWV2 #HV12
+    lapply (nta_to_cnv … HW1 … HW12 … HK12) -HW1 -HW12
+    [ /3 width=1 by fqu_fqup, fqu_lref_O/ ] -IH #HW2
+    @(nta_conv_cnv … V2)
+    /3 width=3 by nta_ldec_cnv, lpr_cpr_conf_cpc_sym, lpr_bind_refl_dx/
+  | * #Y1 #X1 #X2 #_ #_ #H destruct
+  ]
+| #I1 #G #K1 #T1 #U1 #i #Hi #HTU1 #_ #HG0 #HL0 #HT0 #X #HX #Y #HY destruct
+  elim (lpr_inv_bind_sn … HY) -HY #I2 #K2 #HK12 #_ #H destruct
+  elim (cpr_inv_lref1 … HX) -HX
+  [ #H destruct /4 width=6 by nta_lref, fqu_fqup/
+  | * #Z1 #Y1 #X1 #HiX1 #HX1 #H destruct
+    @(nta_lifts_bi … (Ⓣ) … HX1 … HTU1) -X -U1
+    /4 width=6 by drops_refl, drops_drop, fqu_fqup/
+  ]
+| #p #I #G #L1 #V1 #T1 #U #HV1 #HT1 #_ #HG0 #HL0 #HT0 #X #HX #L2 #HL12 destruct
+  elim (cpm_inv_bind1 … HX) -HX *
+  [ #V2 #T2 #HV12 #HT12 #H destruct
+    lapply (IH … HT1 T1 … (L2.ⓑ{I}V1) ?)
+    [4:|*: /2 width=1 by lpr_bind_refl_dx/ ] #H
+    lapply (nta_fwd_cnv_dx … H) -H #HU
+    @(nta_conv_cnv … (ⓑ{p,I}V2.U))
+    [ @nta_bind_cnv [ /3 width=6 by nta_to_cnv/ | /4 width=8 by lpr_bind, ext2_pair/ ]
+    | /3 width=3 by lpr_cpr_conf_cpc_sym, cpr_pair_sn/
+    | /4 width=6 by nta_to_cnv, cnv_bind/
+    ]
+  | #U1 #HUT1 #HU1X #H1 #H2 destruct
+(*  
+    elim (cpr_subst h G (L1.ⓓV1) U 0)
+    [|*: /3 width=3 by drops_refl/ ] #U0 #T0 #HU0 #HTU0
+    lapply (nta_conv_cnv … HT1 … U0 ??)
+    [ @(cnv_lifts … HTU0) 
+    
+    @(IH … HU1X … HL12) -L2 -X
+    @(nta_conv_cnv … T0)
+    [
+    | @cpcs_cprs_sn @(cprs_step_sn … (+ⓓV1.U0))
+      /2 width=1 by cpm_bind/ /3 width=3 by cpm_cpms, cpm_zeta/
+  
+  
+    elim (cpm_lifts_sn … HU1X (Ⓣ) … (L1.ⓓV1) … HUT1) -U1
+    [| /3 width=1 by drops_refl, drops_drop/ ] #T2 #HXT2 #HT12
+*)
diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_cpcs.ma
new file mode 100644 (file)
index 0000000..8438e03
--- /dev/null
@@ -0,0 +1,36 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/rt_equivalence/cpcs_cprs.ma".
+include "basic_2/i_dynamic/ntas.ma".
+
+(* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************)
+
+(* Properties with r-equivalence for terms **********************************)
+
+lemma ntas_zero (h) (a) (G) (L):
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 ![h,a] → ⦃G,L⦄ ⊢ T2 ![h,a] → ⦃G,L⦄ ⊢ T1 ⬌*[h] T2 → ⦃G,L⦄ ⊢ T1 :*[h,a,0] T2.
+#h #a #G #L #T1 #T2 #HT1 #HT2 #H
+elim (cpcs_inv_cprs … H) -H #T0 #HT10 #HT20
+/2 width=3 by ntas_intro/
+qed.
+
+(* Inversion lemmas with r-equivalence for terms ****************************)
+
+lemma ntas_inv_zero (h) (a) (G) (L):
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 :*[h,a,0] T2 →
+      ∧∧ ⦃G,L⦄ ⊢ T1 ![h,a] & ⦃G,L⦄ ⊢ T2 ![h,a] & ⦃G,L⦄ ⊢ T1 ⬌*[h] T2.
+#h #a #G #L #T1 #T2 * #T0 #HT1 #HT2 #HT20 #HT10
+/3 width=3 by cprs_div, and3_intro/ 
+qed-.
index 17259cb17e45bb9403c73526ecde7f95be0ba517..865de8042fe5cd6ec93d8da3b2938a5f0557535a 100644 (file)
@@ -17,6 +17,30 @@ include "basic_2/i_dynamic/ntas_preserve.ma".
 
 (* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************)
 
+(* Advanced properties of native validity for terms *************************)
+
+lemma cnv_appl_ntas_ge (h) (a) (G) (L):
+      ∀m,n. m ≤ n → ad a n → ∀V,W. ⦃G,L⦄ ⊢ V :[h,a] W →
+      ∀p,T,U. ⦃G,L⦄ ⊢ T :*[h,a,m] ⓛ{p}W.U → ⦃G,L⦄ ⊢ ⓐV.T ![h,a].
+#h #a #G #L #m #n #Hmn #Hn #V #W #HVW #p #T #U #HTU
+elim (cnv_inv_cast … HVW) -HVW #W0 #HW #HV #HW0 #HVW0
+elim HTU -HTU #U0 #H #HT #HU0 #HTU0
+elim (cnv_cpms_conf … H … HU0 0 (ⓛ{p}W0.U)) -H -HU0
+[| /2 width=1 by cpms_bind/ ] -HW0 <minus_n_O #X0 #HUX0 #H
+elim (cpms_inv_abst_sn … H) -H #W1 #U1 #HW01 #_ #H destruct
+/3 width=13 by cnv_appl_ge, cpms_cprs_trans/
+qed-.
+
+(* Advanced inversion lemmas of native validity for terms *******************)
+
+lemma cnv_inv_appl_ntas (h) (a) (G) (L):
+      ∀V,T. ⦃G,L⦄ ⊢ ⓐV.T ![h,a] →
+      ∃∃n,p,W,T,U. ad a n & ⦃G,L⦄ ⊢ V :[h,a] W & ⦃G,L⦄ ⊢ T :*[h,a,n] ⓛ{p}W.U.
+#h #a #G #L #V #T #H
+elim (cnv_inv_appl … H) -H #n #p #W #U #Hn #HV #HT #HVW #HTU
+/3 width=9 by cnv_cpms_nta, cnv_cpms_ntas, ex3_5_intro/
+qed-.
+
 (* Properties with native type assignment for terms *************************)
 
 lemma nta_ntas (h) (a) (G) (L):
@@ -25,6 +49,42 @@ lemma nta_ntas (h) (a) (G) (L):
 elim (cnv_inv_cast … H) -H /2 width=3 by ntas_intro/
 qed-.
 
+lemma ntas_step_sn (h) (a) (G) (L):
+      ∀T1,T. ⦃G,L⦄ ⊢ T1 :[h,a] T →
+      ∀n,T2. ⦃G,L⦄ ⊢ T :*[h,a,n] T2 → ⦃G,L⦄ ⊢ T1 :*[h,a,↑n] T2.
+#h #a #G #L #T1 #T #H #n #T2 * #X2 #HT2 #HT #H1TX2 #H2TX2
+elim (cnv_inv_cast … H) -H #X1 #_ #HT1 #H1TX1 #H2TX1
+elim (cnv_cpms_conf … HT … H1TX1 … H2TX2) -T <minus_n_O <minus_O_n <plus_SO_sn #X #HX1 #HX2
+/3 width=5 by ntas_intro, cprs_trans, cpms_trans/
+qed-.
+
+lemma ntas_step_dx (h) (a) (G) (L):
+      ∀n,T1,T. ⦃G,L⦄ ⊢ T1 :*[h,a,n] T →
+      ∀T2. ⦃G,L⦄ ⊢ T :[h,a] T2 → ⦃G,L⦄ ⊢ T1 :*[h,a,↑n] T2.
+#h #a #G #L #n #T1 #T * #X1 #HT #HT1 #H1TX1 #H2TX1 #T2 #H
+elim (cnv_inv_cast … H) -H #X2 #HT2 #_ #H1TX2 #H2TX2
+elim (cnv_cpms_conf … HT … H1TX1 … H2TX2) -T <minus_n_O <minus_O_n <plus_SO_dx #X #HX1 #HX2
+/3 width=5 by ntas_intro, cprs_trans, cpms_trans/
+qed-.
+
+lemma nta_appl_ntas_zero (h) (a) (G) (L): ad a 0 →
+      ∀V,W. ⦃G,L⦄ ⊢ V :[h,a] W → ∀p,T,U0. ⦃G,L⦄ ⊢ T :*[h,a,0] ⓛ{p}W.U0 →
+      ∀U. ⦃G,L.ⓛW⦄ ⊢ U0 :[h,a] U → ⦃G,L⦄ ⊢ ⓐV.T :[h,a] ⓐV.ⓛ{p}W.U.
+#h #a #G #L #Ha #V #W #HVW #p #T #U0 #HTU0 #U #HU0
+lapply (nta_fwd_cnv_dx … HVW) #HW
+lapply (nta_bind_cnv … HW … HU0 p) -HW -HU0 #HU0
+elim (ntas_step_dx … HTU0 … HU0) -HU0 #X #HU #_ #HUX #HTX
+/4 width=9 by cnv_appl_ntas_ge, ntas_refl, cnv_cast, cpms_appl_dx/
+qed.
+
+lemma nta_appl_ntas_pos (h) (a) (n) (G) (L): ad a (↑n) →
+      ∀V,W. ⦃G,L⦄ ⊢ V :[h,a] W → ∀T,U. ⦃G,L⦄ ⊢ T :[h,a] U →
+      ∀p,U0. ⦃G,L⦄ ⊢ U :*[h,a,n] ⓛ{p}W.U0 → ⦃G,L⦄ ⊢ ⓐV.T :[h,a] ⓐV.U.
+#h #a #n #G #L #Ha #V #W #HVW #T #U #HTU #p #U0 #HU0
+elim (cnv_inv_cast … HTU) #X #_ #_ #HUX #HTX
+/4 width=11 by ntas_step_sn, cnv_appl_ntas_ge, cnv_cast, cpms_appl_dx/
+qed-.
+
 (* Inversion lemmas with native type assignment for terms *******************)
 
 lemma ntas_inv_nta (h) (a) (G) (L):
@@ -73,29 +133,3 @@ elim (eq_or_gt n) #Hn destruct
   /5 width=10 by cnv_cpms_ntas, cnv_cpms_nta, cnv_cpms_trans, ex6_5_intro, or_intror/
 ]
 qed-.
-
-(*
-
-definition ntas: sh → lenv → relation term ≝
-                 λh,L. star … (nta h L).
-
-(* Basic eliminators ********************************************************)
-
-axiom ntas_ind_dx: ∀h,L,T2. ∀R:predicate term. R T2 →
-                   (∀T1,T. ⦃h,L⦄ ⊢ T1 : T → ⦃h,L⦄ ⊢ T :* T2 → R T → R T1) →
-                   ∀T1. ⦃h,L⦄ ⊢ T1 :* T2 → R T1.
-(*
-#h #L #T2 #R #HT2 #IHT2 #T1 #HT12
-@(star_ind_dx … HT2 IHT2 … HT12) //
-qed-.
-*)
-(* Basic properties *********************************************************)
-
-lemma ntas_strap1: ∀h,L,T1,T,T2.
-                   ⦃h,L⦄ ⊢ T1 :* T → ⦃h,L⦄  ⊢ T : T2 → ⦃h,L⦄  ⊢ T1 :* T2.
-/2 width=3/ qed.
-
-lemma ntas_strap2: ∀h,L,T1,T,T2.
-                   ⦃h,L⦄  ⊢ T1 : T → ⦃h,L⦄ ⊢ T :* T2 → ⦃h,L⦄ ⊢ T1 :* T2.
-/2 width=3/ qed.
-*)
diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta_ind.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta_ind.ma
new file mode 100644 (file)
index 0000000..41a3044
--- /dev/null
@@ -0,0 +1,111 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/dynamic/nta_drops.ma".
+include "basic_2/dynamic/nta_cpcs.ma".
+include "basic_2/i_dynamic/ntas_cpcs.ma".
+include "basic_2/i_dynamic/ntas_nta.ma".
+include "basic_2/i_dynamic/ntas_ntas.ma".
+
+(* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************)
+
+(* Advanced eliminators for native type assignment **************************)
+
+lemma ntas_ind_bi_nta (h) (a) (G) (L) (Q:relation3 …):
+      (∀T1,T2. ⦃G,L⦄ ⊢ T1 ![h,a] → ⦃G,L⦄ ⊢ T2 ![h,a] → ⦃G,L⦄ ⊢ T1 ⬌*[h] T2 →
+        Q 0 T1 T2
+      ) →
+      (∀T1,T2. ⦃G,L⦄ ⊢ T1 :[h,a] T2 → Q 1 T1 T2
+      ) →
+      (∀n1,n2,T1,T2,T0.  ⦃G,L⦄ ⊢ T1 :*[h,a,n1] T0 → ⦃G,L⦄ ⊢ T0 :*[h,a,n2] T2 →
+        Q n1 T1 T0 → Q n2 T0 T2 → Q (n1+n2) T1 T2
+      ) →
+      ∀n,T1,T2. ⦃G,L⦄ ⊢ T1 :*[h,a,n] T2 → Q n T1 T2.
+#h #a #G #L #Q #IH1 #IH2 #IH3 #n
+@(nat_elim1 n) -n * [| * ]
+[ #_ #T1 #T2 #H
+  elim (ntas_inv_zero … H) -H #HT1 #HT2 #HT12
+  /2 width=1 by/
+| #_ #T1 #T2 #H
+  /3 width=1 by ntas_inv_nta/
+| #n #IH #T1 #T2 <plus_SO_sn #H
+  elim (ntas_inv_plus … H) -H #T0 #HT10 #HT02
+  /3 width=5 by/
+]
+qed-.
+
+lemma nta_ind_cnv (h) (a) (Q:relation4 …):
+      (∀G,L,s. Q G L (⋆s) (⋆(⫯[h]s))) →
+      (∀G,K,V,W,U.
+        ⦃G,K⦄ ⊢ V :[h,a] W → ⇧*[1] W ≘ U →
+        Q G K V W → Q G (K.ⓓV) (#0) U
+      ) →
+      (∀G,K,W,U. ⦃G,K⦄ ⊢ W ![h,a] → ⇧*[1] W ≘ U → Q G (K.ⓛW) (#0) U) →
+      (∀I,G,K,W,U,i.
+        ⦃G,K⦄ ⊢ #i :[h,a] W → ⇧*[1] W ≘ U →
+        Q G K (#i) W → Q G (K.ⓘ{I}) (#↑i) U
+      ) →
+      (∀p,I,G,K,V,T,U.
+        ⦃G,K⦄ ⊢ V ![h,a] → ⦃G,K.ⓑ{I}V⦄ ⊢ T :[h,a] U →
+        Q G (K.ⓑ{I}V) T U → Q G K (ⓑ{p,I}V.T) (ⓑ{p,I}V.U)
+      ) →
+      (∀p,G,L,V,W,T,U0,U. (**) (* one IH is missing *)
+        ad a 0 → ⦃G,L⦄ ⊢ V :[h,a] W → ⦃G,L⦄ ⊢ T :*[h,a,0] ⓛ{p}W.U0 → ⦃G,L.ⓛW⦄ ⊢ U0 :[h,a] U →
+        Q G L V W (* → Q G (L.ⓛW) U0 U *) → Q G L (ⓐV.T) (ⓐV.ⓛ{p}W.U)
+      ) →
+      (∀n,p,G,L,V,W,T,U,U0.
+        ad a (↑n) → ⦃G,L⦄ ⊢ V :[h,a] W → ⦃G,L⦄ ⊢ T :[h,a] U → ⦃G,L⦄ ⊢ U :*[h,a,n] ⓛ{p}W.U0 →
+        Q G L V W → Q G L T U → Q G L (ⓐV.T) (ⓐV.U)
+      ) →
+      (∀G,L,T,U. ⦃G,L⦄ ⊢ T :[h,a] U → Q G L T U → Q G L (ⓝU.T) U
+      ) →
+      (∀G,L,T,U1,U2.
+        ⦃G,L⦄ ⊢ T :[h,a] U1 → ⦃G,L⦄ ⊢ U1 ⬌*[h] U2 → ⦃G,L⦄ ⊢ U2 ![h,a] →
+        Q G L T U1 → Q G L T U2
+      ) →
+      ∀G,L,T,U. ⦃G,L⦄ ⊢ T :[h,a] U → Q G L T U.
+#h #a #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #H9 #G #L #T
+@(fqup_wf_ind_eq (Ⓣ) … G L T) -G -L -T #G0 #L0 #T0 #IH #G #L * * [|||| * ]
+[ #s #HG #HL #HT #X #H destruct -IH
+  elim (nta_inv_sort_sn … H) -H #HUX #HX
+  /2 width=4 by/
+| * [| #i ] #HG #HL #HT #X #H destruct
+  [ elim (nta_inv_lref_sn_drops_cnv … H) -H *
+    [ #K #V #W #U #H #HVW #HWU #HUX #HX
+      lapply (drops_fwd_isid … H ?) -H [ // ] #H destruct
+      /5 width=7 by nta_ldef, fqu_fqup, fqu_lref_O/
+    | #K #W #U #H #HW #HWU #HUX #HX
+      lapply (drops_fwd_isid … H ?) -H [ // ] #H destruct
+      /3 width=4 by nta_ldec_cnv/
+    ]
+  | elim (nta_inv_lref_sn … H) -H #I #K #T #U #HT #HTU #HUX #HX #H destruct
+    /5 width=7 by nta_lref, fqu_fqup/
+  ]
+| #l #HG #HL #HT #U #H destruct -IH
+  elim (nta_inv_gref_sn … H)
+| #p #I #V #T #HG #HL #HT #X #H destruct
+  elim (nta_inv_bind_sn_cnv … H) -H #U #HV #HTU #HUX #HX
+  /4 width=5 by nta_bind_cnv/
+| #V #T #HG #HL #HT #X #H destruct
+  elim (nta_inv_appl_sn_ntas … H) -H *
+  [ #p #W #U #U0 #Ha #HVW #HTU0 #HU0 #HUX #HX -IH7
+    /4 width=10 by nta_appl_ntas_zero/
+  | #n #p #W #U #U0 #Ha #HVW #HTU #HU0 #HUX #HX -IH6
+    /4 width=13 by nta_appl_ntas_pos/
+  ]
+| #U #T #HG #HL #HT #X #H destruct
+  elim (nta_inv_cast_sn … H) -H #HTU #HUX #HX
+  /4 width=4 by nta_cast/
+]
+qed-.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_ntas.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_ntas.ma
new file mode 100644 (file)
index 0000000..67e7464
--- /dev/null
@@ -0,0 +1,27 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/i_dynamic/ntas_preserve.ma".
+
+(* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************)
+
+(* Main properties **********************************************************)
+
+theorem ntas_trans (h) (a) (G) (L) (T0):
+        ∀n1,T1. ⦃G,L⦄ ⊢ T1 :*[h,a,n1] T0 →
+        ∀n2,T2. ⦃G,L⦄ ⊢ T0 :*[h,a,n2] T2 → ⦃G,L⦄ ⊢ T1 :*[h,a,n1+n2] T2.
+#h #a #G #L #T0 #n1 #T1 * #X1 #HT0 #HT1 #H01 #H11 #n2 #T2 * #X2 #HT2 #_ #H22 #H02
+elim (cnv_cpms_conf … HT0 … H01 … H02) -T0 <minus_O_n <minus_n_O #X0 #H10 #H20
+/3 width=5 by ntas_intro, cpms_trans/
+qed-.
index 5d391caed00423c60f442fa801631e62a06131f4..53f02c04e9df382e9fcdde788c32d7bdcc7992c7 100644 (file)
@@ -26,6 +26,15 @@ lemma cnv_cpms_ntas (h) (a) (G) (L):
 
 (* Inversion lemmas based on preservation ***********************************)
 
+lemma ntas_inv_plus (h) (a) (n1) (n2) (G) (L):
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 :*[h,a,n1+n2] T2 →
+      ∃∃T0. ⦃G,L⦄ ⊢ T1 :*[h,a,n1] T0 & ⦃G,L⦄ ⊢ T0 :*[h,a,n2] T2.
+#h #a #n1 #n2 #G #L #T1 #T2 * #X0 #HT2 #HT1 #H20 #H10
+elim (cpms_inv_plus … H10) -H10 #T0 #H10 #H00
+lapply (cnv_cpms_trans … HT1 … H10) #HT0
+/3 width=6 by cnv_cpms_ntas, ntas_intro, ex2_intro/
+qed-.
+
 lemma ntas_inv_appl_sn (h) (a) (m) (G) (L) (V) (T):
       ∀X. ⦃G,L⦄ ⊢ ⓐV.T :*[h,a,m] X →
       ∨∨ ∃∃n,p,W,U,U0. n ≤ m & ad a n & ⦃G,L⦄ ⊢ V :*[h,a,1] W & ⦃G,L⦄ ⊢ T :*[h,a,n] ⓛ{p}W.U0 & ⦃G,L.ⓛW⦄ ⊢ U0 :*[h,a,m-n] U & ⦃G,L⦄ ⊢ ⓐV.ⓛ{p}W.U ⬌*[h] X & ⦃G,L⦄ ⊢ X ![h,a]
@@ -51,58 +60,3 @@ elim (le_or_ge n m) #Hnm
   /5 width=11 by cnv_cpms_ntas, cnv_cpms_trans, ex7_5_intro, or_intror/
 ]
 qed-.
-
-(*
-(* Advanced properties on native type assignment for terms ******************)
-
-lemma nta_pure_ntas: ∀h,L,U,W,Y. ⦃h,L⦄ ⊢ U :* ⓛW.Y → ∀T. ⦃h,L⦄ ⊢ T : U →
-                     ∀V. ⦃h,L⦄ ⊢ V : W →  ⦃h,L⦄ ⊢ ⓐV.T : ⓐV.U.
-#h #L #U #W #Y #H @(ntas_ind_dx … H) -U /2 width=1/ /3 width=2/
-qed.
-
-axiom pippo: ∀h,L,T,W,Y. ⦃h,L⦄ ⊢ T :* ⓛW.Y → ∀U. ⦃h,L⦄ ⊢ T : U →
-             ∃Z. ⦃h,L⦄ ⊢ U :* ⓛW.Z.
-(* REQUIRES SUBJECT CONVERSION
-#h #L #T #W #Y #H @(ntas_ind_dx … H) -T
-[ #U #HYU
-  elim (nta_fwd_correct … HYU) #U0 #HU0 
-  elim (nta_inv_bind1 … HYU) #W0 #Y0 #HW0 #HY0 #HY0U
-*)
-
-(* Advanced inversion lemmas on native type assignment for terms ************)
-
-fact nta_inv_pure1_aux: ∀h,L,Z,U. ⦃h,L⦄ ⊢ Z : U → ∀X,Y. Z = ⓐY.X →
-                        ∃∃W,V,T. ⦃h,L⦄ ⊢ Y : W & ⦃h,L⦄ ⊢ X : V &
-                                 L ⊢ ⓐY.V ⬌* U & ⦃h,L⦄ ⊢ V :* ⓛW.T.
-#h #L #Z #U #H elim H -L -Z -U
-[ #L #k #X #Y #H destruct
-| #L #K #V #W #U #i #_ #_ #_ #_ #X #Y #H destruct
-| #L #K #W #V #U #i #_ #_ #_ #_ #X #Y #H destruct
-| #I #L #V #W #T #U #_ #_ #_ #_ #X #Y #H destruct
-| #L #V #W #Z #U #HVW #HZU #_ #_ #X #Y #H destruct /2 width=7/
-| #L #V #W #Z #U #HZU #_ #_ #IHUW #X #Y #H destruct
-  elim (IHUW U Y ?) -IHUW // /3 width=9/
-| #L #Z #U #_ #_ #X #Y #H destruct
-| #L #Z #U1 #U2 #V2 #_ #HU12 #_ #IHTU1 #_ #X #Y #H destruct
-  elim (IHTU1 ???) -IHTU1 [4: // |2,3: skip ] #W #V #T #HYW #HXV #HU1 #HVT
-  lapply (cpcs_trans … HU1 … HU12) -U1 /2 width=7/
-]
-qed.
-
-(* Basic_1: was only: ty3_gen_appl *)
-lemma nta_inv_pure1: ∀h,L,Y,X,U. ⦃h,L⦄ ⊢ ⓐY.X : U →
-                     ∃∃W,V,T. ⦃h,L⦄ ⊢ Y : W & ⦃h,L⦄ ⊢ X : V &
-                              L ⊢ ⓐY.V ⬌* U & ⦃h,L⦄ ⊢ V :* ⓛW.T.
-/2 width=3/ qed-.
-
-axiom nta_inv_appl1: ∀h,L,Z,Y,X,U. ⦃h,L⦄ ⊢ ⓐZ.ⓛY.X : U →
-                     ∃∃W. ⦃h,L⦄ ⊢ Z : Y & ⦃h,L⦄ ⊢ ⓛY.X : ⓛY.W &
-                     L ⊢ ⓐZ.ⓛY.W ⬌* U.
-(* REQUIRES SUBJECT REDUCTION
-#h #L #Z #Y #X #U #H
-elim (nta_inv_pure1 … H) -H #W #V #T #HZW #HXV #HVU #HVT
-elim (nta_inv_bind1 … HXV) -HXV #Y0 #X0 #HY0 #HX0 #HX0V
-lapply (cpcs_trans … (ⓐZ.ⓛY.X0) … HVU) -HVU /2 width=1/ -HX0V #HX0U
-@(ex3_1_intro … HX0U) /2 width=2/
-*)
-*)
diff --git a/matita/matita/contribs/lambdadelta/basic_2/notation/relations/pty_6.ma b/matita/matita/contribs/lambdadelta/basic_2/notation/relations/pty_6.ma
new file mode 100644 (file)
index 0000000..0fb47e9
--- /dev/null
@@ -0,0 +1,19 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
+
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ⬆[ break term 46 h, break term 46 n ] break term 46 T2 )"
+   non associative with precedence 45
+   for @{ 'PTy $h $n $G $L $T1 $T2 }.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/notation/relations/ptystar_6.ma b/matita/matita/contribs/lambdadelta/basic_2/notation/relations/ptystar_6.ma
new file mode 100644 (file)
index 0000000..8843038
--- /dev/null
@@ -0,0 +1,19 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
+
+notation "hvbox( ⦃ term 46 G, break term 46 L ⦄ ⊢ break term 46 T1 ⬆*[ break term 46 h, break term 46 n ] break term 46 T2 )"
+   non associative with precedence 45
+   for @{ 'PTyStar $h $n $G $L $T1 $T2 }.
index 374aa1284ef4566b1fd6f594aadb5c364cecf2e6..6492a3b1b664192d5ed45c870dcbaf3c1468c99c 100644 (file)
@@ -49,7 +49,7 @@ elim (cpms_inv_lref_sn … H) -H *
 qed.
 
 lemma cnuw_atom_drops (h) (b) (G) (L):
-      â\88\80i. â¬\87*[b,𝐔❴i❵] L ≘ ⋆ → ⦃G,L⦄ ⊢ ➡𝐍𝐖*[h] #i.
+      â\88\80i. â\87©*[b,𝐔❴i❵] L ≘ ⋆ → ⦃G,L⦄ ⊢ ➡𝐍𝐖*[h] #i.
 #h #b #G #L #i #Hi #n #X #H
 elim (cpms_inv_lref1_drops … H) -H * [ // || #m ] #K #V1 #V2 #HLK
 lapply (drops_gen b … HLK) -HLK #HLK
@@ -57,7 +57,7 @@ lapply (drops_mono … Hi … HLK) -L #H destruct
 qed.
 
 lemma cnuw_unit_drops (h) (I) (G) (L):
-      â\88\80K,i. â¬\87*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ➡𝐍𝐖*[h] #i.
+      â\88\80K,i. â\87©*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ➡𝐍𝐖*[h] #i.
 #h #I #G #L #K #i #HLK #n #X #H
 elim (cpms_inv_lref1_drops … H) -H * [ // || #m ] #Y #V1 #V2 #HLY
 lapply (drops_mono … HLK … HLY) -L #H destruct
index 2f7d1f449b826168cc3ec6c31f53048f22657732..081eece9b1257698327268c01aa216e38beeafc5 100644 (file)
@@ -80,7 +80,7 @@ lemma cpms_appl_dx (n) (h) (G) (L):
 qed.
 
 lemma cpms_zeta (n) (h) (G) (L):
-                â\88\80T1,T. â¬\86*[1] T ≘ T1 →
+                â\88\80T1,T. â\87§*[1] T ≘ T1 →
                 ∀V,T2. ⦃G,L⦄ ⊢ T ➡*[n,h] T2 → ⦃G,L⦄ ⊢ +ⓓV.T1 ➡*[n,h] T2.
 #n #h #G #L #T1 #T #HT1 #V #T2 #H @(cpms_ind_dx … H) -T2
 /3 width=3 by cpms_step_dx, cpm_cpms, cpm_zeta/
@@ -88,7 +88,7 @@ qed.
 
 (* Basic_2A1: uses: cprs_zeta *)
 lemma cpms_zeta_dx (n) (h) (G) (L):
-                   â\88\80T2,T. â¬\86*[1] T2 ≘ T →
+                   â\88\80T2,T. â\87§*[1] T2 ≘ T →
                    ∀V,T1. ⦃G,L.ⓓV⦄ ⊢ T1 ➡*[n,h] T → ⦃G,L⦄ ⊢ +ⓓV.T1 ➡*[n,h] T2.
 #n #h #G #L #T2 #T #HT2 #V #T1 #H @(cpms_ind_sn … H) -T1
 /3 width=3 by cpms_step_sn, cpm_cpms, cpm_bind, cpm_zeta/
@@ -125,7 +125,7 @@ qed.
 (* Basic_2A1: uses: cprs_theta_dx *)
 lemma cpms_theta_dx (n) (h) (G) (L):
                     ∀V1,V. ⦃G,L⦄ ⊢ V1 ➡[h] V →
-                    â\88\80V2. â¬\86*[1] V ≘ V2 →
+                    â\88\80V2. â\87§*[1] V ≘ V2 →
                     ∀W1,W2. ⦃G,L⦄ ⊢ W1 ➡[h] W2 →
                     ∀T1,T2. ⦃G,L.ⓓW1⦄ ⊢ T1 ➡*[n,h] T2 →
                     ∀p. ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ➡*[n,h] ⓓ{p}W2.ⓐV2.T2.
@@ -144,7 +144,7 @@ lemma cprs_refl: ∀h,G,L. reflexive … (cpms h G L 0).
 lemma cpms_sort (h) (G) (L) (n):
                 ∀s. ⦃G,L⦄ ⊢ ⋆s ➡*[n,h] ⋆((next h)^n s).
 #h #G #L #n elim n -n [ // ]
-#n #IH #s <plus_SO
+#n #IH #s <plus_SO_dx
 /3 width=3 by cpms_step_dx, cpm_sort/
 qed.
 
index db4eefb221ed7e7826f978e7396cbf1108d3865f..af4cdde7303f3109e9b001a0f57a820d8bf865e4 100644 (file)
@@ -30,7 +30,7 @@ lemma cpms_total_aaa (h) (G) (L) (n) (A):
       ∀T. ⦃G,L⦄ ⊢ T ⁝ A → ∃U. ⦃G,L⦄ ⊢ T ➡*[n,h] U.
 #h #G #L #n elim n -n
 [ /2 width=3 by ex_intro/
-| #n #IH #A #T1 #HT1 <plus_SO
+| #n #IH #A #T1 #HT1 <plus_SO_dx
   elim (IH … HT1) -IH #T0 #HT10
   lapply (cpms_aaa_conf … HT1 … HT10) -HT1 #HT0
   elim (aaa_cpm_SO h … HT0) -HT0 #T2 #HT02
index 0e09b27f0835401c3ace850d4ded61fecde069e3..245d44f9ce1643d025ab721df604dd65459bcbe6 100644 (file)
@@ -72,7 +72,7 @@ qed.
 
 (* Basic_2A1: includes: cprs_theta_rc *)
 theorem cpms_theta_rc (n) (h) (G) (L):
-                      â\88\80V1,V. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V â\86\92 â\88\80V2. â¬\86*[1] V ≘ V2 →
+                      â\88\80V1,V. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V â\86\92 â\88\80V2. â\87§*[1] V ≘ V2 →
                       ∀W1,T1,T2. ⦃G,L.ⓓW1⦄ ⊢ T1 ➡*[n,h] T2 →
                       ∀W2. ⦃G,L⦄ ⊢ W1 ➡*[h] W2 →
                       ∀p. ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ➡*[n,h] ⓓ{p}W2.ⓐV2.T2.
@@ -85,7 +85,7 @@ qed.
 
 (* Basic_2A1: includes: cprs_theta *)
 theorem cpms_theta (n) (h) (G) (L):
-                   â\88\80V,V2. â¬\86*[1] V ≘ V2 → ∀W1,W2. ⦃G,L⦄ ⊢ W1 ➡*[h] W2 →
+                   â\88\80V,V2. â\87§*[1] V ≘ V2 → ∀W1,W2. ⦃G,L⦄ ⊢ W1 ➡*[h] W2 →
                    ∀T1,T2. ⦃G,L.ⓓW1⦄ ⊢ T1 ➡*[n,h] T2 →
                    ∀V1. ⦃G,L⦄ ⊢ V1 ➡*[h] V → 
                    ∀p. ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ➡*[n,h] ⓓ{p}W2.ⓐV2.T2.
@@ -120,7 +120,7 @@ lemma cpms_inv_appl_sn (n) (h) (G) (L):
                             ⦃G,L⦄ ⊢ T1 ➡*[n1,h] ⓛ{p}W.T & ⦃G,L⦄ ⊢ ⓓ{p}ⓝW.V1.T ➡*[n2,h] X2 &
                             n1 + n2 = n
                         | ∃∃n1,n2,p,V0,V2,V,T.
-                            â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡*[h] V0 & â¬\86*[1] V0 ≘ V2 &
+                            â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡*[h] V0 & â\87§*[1] V0 ≘ V2 &
                             ⦃G,L⦄ ⊢ T1 ➡*[n1,h] ⓓ{p}V.T & ⦃G,L⦄ ⊢ ⓓ{p}V.ⓐV2.T ➡*[n2,h] X2 &
                             n1 + n2 = n.
 #n #h #G #L #V1 #T1 #U2 #H
index 12f11ae451db36acbcd54b93bb348e6427062c79..f98626953f8dbe51980fc44de7c85f953a53fa79 100644 (file)
@@ -47,7 +47,7 @@ qed-.
 (* Advanced properties ******************************************************)
 
 lemma cpms_delta (n) (h) (G): ∀K,V1,V2. ⦃G,K⦄ ⊢ V1 ➡*[n,h] V2 →
-                              â\88\80W2. â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓓV1⦄ ⊢ #0 ➡*[n,h] W2.
+                              â\88\80W2. â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓓV1⦄ ⊢ #0 ➡*[n,h] W2.
 #n #h #G #K #V1 #V2 #H @(cpms_ind_dx … H) -V2
 [ /3 width=3 by cpm_cpms, cpm_delta/
 | #n1 #n2 #V #V2 #_ #IH #HV2 #W2 #HVW2
@@ -57,7 +57,7 @@ lemma cpms_delta (n) (h) (G): ∀K,V1,V2. ⦃G,K⦄ ⊢ V1 ➡*[n,h] V2 →
 qed.
 
 lemma cpms_ell (n) (h) (G): ∀K,V1,V2. ⦃G,K⦄ ⊢ V1 ➡*[n,h] V2 →
-                            â\88\80W2. â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓛV1⦄ ⊢ #0 ➡*[↑n,h] W2.
+                            â\88\80W2. â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓛV1⦄ ⊢ #0 ➡*[↑n,h] W2.
 #n #h #G #K #V1 #V2 #H @(cpms_ind_dx … H) -V2
 [ /3 width=3 by cpm_cpms, cpm_ell/
 | #n1 #n2 #V #V2 #_ #IH #HV2 #W2 #HVW2
@@ -67,7 +67,7 @@ lemma cpms_ell (n) (h) (G): ∀K,V1,V2. ⦃G,K⦄ ⊢ V1 ➡*[n,h] V2 →
 qed.
 
 lemma cpms_lref (n) (h) (I) (G): ∀K,T,i. ⦃G,K⦄ ⊢ #i ➡*[n,h] T →
-                                 â\88\80U. â¬\86*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ➡*[n,h] U.
+                                 â\88\80U. â\87§*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ➡*[n,h] U.
 #n #h #I #G #K #T #i #H @(cpms_ind_dx … H) -T
 [ /3 width=3 by cpm_cpms, cpm_lref/
 | #n1 #n2 #T #T2 #_ #IH #HT2 #U2 #HTU2
@@ -91,9 +91,9 @@ qed.
 (* Note: apparently this was missing in basic_1 *)
 (* Basic_2A1: uses: cprs_delta *)
 lemma cpms_delta_drops (n) (h) (G):
-                       â\88\80L,K,V,i. â¬\87*[i] L ≘ K.ⓓV →
+                       â\88\80L,K,V,i. â\87©*[i] L ≘ K.ⓓV →
                        ∀V2. ⦃G,K⦄ ⊢ V ➡*[n,h] V2 →
-                       â\88\80W2. â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡*[n,h] W2.
+                       â\88\80W2. â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡*[n,h] W2.
 #n #h #G #L #K #V #i #HLK #V2 #H @(cpms_ind_dx … H) -V2
 [ /3 width=6 by cpm_cpms, cpm_delta_drops/
 | #n1 #n2 #V1 #V2 #_ #IH #HV12 #W2 #HVW2
@@ -104,9 +104,9 @@ lemma cpms_delta_drops (n) (h) (G):
 qed.
 
 lemma cpms_ell_drops (n) (h) (G):
-                     â\88\80L,K,W,i. â¬\87*[i] L ≘ K.ⓛW →
+                     â\88\80L,K,W,i. â\87©*[i] L ≘ K.ⓛW →
                      ∀W2. ⦃G,K⦄ ⊢ W ➡*[n,h] W2 →
-                     â\88\80V2. â¬\86*[↑i] W2 ≘ V2 → ⦃G,L⦄ ⊢ #i ➡*[↑n,h] V2.
+                     â\88\80V2. â\87§*[↑i] W2 ≘ V2 → ⦃G,L⦄ ⊢ #i ➡*[↑n,h] V2.
 #n #h #G #L #K #W #i #HLK #W2 #H @(cpms_ind_dx … H) -W2
 [ /3 width=6 by cpm_cpms, cpm_ell_drops/
 | #n1 #n2 #W1 #W2 #_ #IH #HW12 #V2 #HWV2
@@ -121,10 +121,10 @@ qed.
 lemma cpms_inv_lref1_drops (n) (h) (G):
                            ∀L,T2,i. ⦃G,L⦄ ⊢ #i ➡*[n,h] T2 →
                            ∨∨ ∧∧ T2 = #i & n = 0
-                            | â\88\83â\88\83K,V,V2. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡*[n,h] V2 &
-                                        â¬\86*[↑i] V2 ≘ T2
-                            | â\88\83â\88\83m,K,V,V2. â¬\87*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ➡*[m,h] V2 &
-                                          â¬\86*[↑i] V2 ≘ T2 & n = ↑m.
+                            | â\88\83â\88\83K,V,V2. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡*[n,h] V2 &
+                                        â\87§*[↑i] V2 ≘ T2
+                            | â\88\83â\88\83m,K,V,V2. â\87©*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ➡*[m,h] V2 &
+                                          â\87§*[↑i] V2 ≘ T2 & n = ↑m.
 #n #h #G #L #T2 #i #H @(cpms_ind_dx … H) -T2
 [ /3 width=1 by or3_intro0, conj/
 | #n1 #n2 #T #T2 #_ #IH #HT2 cases IH -IH *
@@ -149,7 +149,7 @@ qed-.
 lemma cpms_inv_delta_sn (n) (h) (G) (K) (V):
       ∀T2. ⦃G,K.ⓓV⦄ ⊢ #0 ➡*[n,h] T2 →
       ∨∨ ∧∧ T2 = #0 & n = 0
-       | â\88\83â\88\83V2. â¦\83G,Kâ¦\84 â\8a¢ V â\9e¡*[n,h] V2 & â¬\86*[1] V2 ≘ T2.
+       | â\88\83â\88\83V2. â¦\83G,Kâ¦\84 â\8a¢ V â\9e¡*[n,h] V2 & â\87§*[1] V2 ≘ T2.
 #n #h #G #K #V #T2 #H
 elim (cpms_inv_lref1_drops … H) -H *
 [ /3 width=1 by or_introl, conj/
@@ -164,7 +164,7 @@ qed-.
 lemma cpms_inv_ell_sn (n) (h) (G) (K) (V):
       ∀T2. ⦃G,K.ⓛV⦄ ⊢ #0 ➡*[n,h] T2 →
       ∨∨ ∧∧ T2 = #0 & n = 0
-       | â\88\83â\88\83m,V2. â¦\83G,Kâ¦\84 â\8a¢ V â\9e¡*[m,h] V2 & â¬\86*[1] V2 ≘ T2 & n = ↑m.
+       | â\88\83â\88\83m,V2. â¦\83G,Kâ¦\84 â\8a¢ V â\9e¡*[m,h] V2 & â\87§*[1] V2 ≘ T2 & n = ↑m.
 #n #h #G #K #V #T2 #H
 elim (cpms_inv_lref1_drops … H) -H *
 [ /3 width=1 by or_introl, conj/
@@ -179,7 +179,7 @@ qed-.
 lemma cpms_inv_lref_sn (n) (h) (G) (I) (K):
       ∀U2,i. ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ➡*[n,h] U2 →
       ∨∨ ∧∧ U2 = #↑i & n = 0
-       | â\88\83â\88\83T2. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡*[n,h] T2 & â¬\86*[1] T2 ≘ U2.
+       | â\88\83â\88\83T2. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡*[n,h] T2 & â\87§*[1] T2 ≘ U2.
 #n #h #G #I #K #U2 #i #H
 elim (cpms_inv_lref1_drops … H) -H *
 [ /3 width=1 by or_introl, conj/
index 069323fb4fa30d9a38c9d03b9fcb8de3f3f814c3..3fa433c0f4de4dcd5a5017a21ba5a3ee7b5a6438 100644 (file)
@@ -58,7 +58,7 @@ lemma cprs_inv_appl_sn (h) (G) (L):
                                          X2 = ⓐV2. T2
                         | ∃∃p,W,T.       ⦃G,L⦄ ⊢ T1 ➡*[h] ⓛ{p}W.T &
                                          ⦃G,L⦄ ⊢ ⓓ{p}ⓝW.V1.T ➡*[h] X2
-                        | â\88\83â\88\83p,V0,V2,V,T. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡*[h] V0 & â¬\86*[1] V0 ≘ V2 &
+                        | â\88\83â\88\83p,V0,V2,V,T. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡*[h] V0 & â\87§*[1] V0 ≘ V2 &
                                          ⦃G,L⦄ ⊢ T1 ➡*[h] ⓓ{p}V.T &
                                          ⦃G,L⦄ ⊢ ⓓ{p}V.ⓐV2.T ➡*[h] X2.
 #h #G #L #V1 #T1 #X2 #H elim (cpms_inv_appl_sn … H) -H *
index bd1afeec3492043b8bf47e684b8862d7013e525e..bbc0b19a5c53644ec28643e75c0bb5919773a3ed 100644 (file)
@@ -22,8 +22,8 @@ include "basic_2/rt_computation/cpms_drops.ma".
 (* Basic_2A1: was: cprs_inv_lref1 *)
 lemma cprs_inv_lref1_drops (h) (G): ∀L,T2,i. ⦃G,L⦄ ⊢ #i ➡*[h] T2 →
                                     ∨∨ T2 = #i
-                                     | â\88\83â\88\83K,V1,T1. â¬\87*[i] L ≘ K.ⓓV1 & ⦃G,K⦄ ⊢ V1 ➡*[h] T1 &
-                                                  â¬\86*[↑i] T1 ≘ T2.
+                                     | â\88\83â\88\83K,V1,T1. â\87©*[i] L ≘ K.ⓓV1 & ⦃G,K⦄ ⊢ V1 ➡*[h] T1 &
+                                                  â\87§*[↑i] T1 ≘ T2.
 #h #G #L #T2 #i #H elim (cpms_inv_lref1_drops … H) -H *
 [ /2 width=1 by or_introl/
 | /3 width=6 by ex3_3_intro, or_intror/
index e0048f7d7a5fcad57f4a6489cf460b7a5837a28e..4a0550473950942927529804cca47a6cd0385d86 100644 (file)
@@ -90,7 +90,7 @@ lemma cpxs_pair_sn: ∀h,I,G,L,V1,V2. ⦃G,L⦄ ⊢ V1 ⬈*[h] V2 →
 qed.
 
 lemma cpxs_zeta (h) (G) (L) (V):
-                â\88\80T1,T. â¬\86*[1] T ≘ T1 →
+                â\88\80T1,T. â\87§*[1] T ≘ T1 →
                 ∀T2. ⦃G,L⦄ ⊢ T ⬈*[h] T2 → ⦃G,L⦄ ⊢ +ⓓV.T1 ⬈*[h] T2.
 #h #G #L #V #T1 #T #HT1 #T2 #H @(cpxs_ind … H) -T2
 /3 width=3 by cpxs_strap1, cpx_cpxs, cpx_zeta/
@@ -98,7 +98,7 @@ qed.
 
 (* Basic_2A1: was: cpxs_zeta *)
 lemma cpxs_zeta_dx (h) (G) (L) (V):
-                   â\88\80T2,T. â¬\86*[1] T2 ≘ T →
+                   â\88\80T2,T. â\87§*[1] T2 ≘ T →
                    ∀T1. ⦃G,L.ⓓV⦄ ⊢ T1 ⬈*[h] T → ⦃G,L⦄ ⊢ +ⓓV.T1 ⬈*[h] T2.
 #h #G #L #V #T2 #T #HT2 #T1 #H @(cpxs_ind_dx … H) -T1
 /3 width=3 by cpxs_strap2, cpx_cpxs, cpx_bind, cpx_zeta/
@@ -125,7 +125,7 @@ lemma cpxs_beta_dx: ∀h,p,G,L,V1,V2,W1,W2,T1,T2.
 qed.
 
 lemma cpxs_theta_dx: ∀h,p,G,L,V1,V,V2,W1,W2,T1,T2.
-                     â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â¬\86*[1] V ≘ V2 → ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈*[h] T2 →
+                     â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â\87§*[1] V ≘ V2 → ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈*[h] T2 →
                      ⦃G,L⦄ ⊢ W1 ⬈[h] W2 → ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ⬈*[h] ⓓ{p}W2.ⓐV2.T2.
 #h #p #G #L #V1 #V #V2 #W1 #W2 #T1 #T2 #HV1 #HV2 * -T2 
 /4 width=9 by cpx_cpxs, cpxs_strap1, cpxs_bind_dx, cpxs_flat_dx, cpx_theta/
index 60ddf6394ca9621351724650c5f18c663e286940..949e6902c4225560749e8e15e285e6928e5d99ae 100644 (file)
@@ -51,7 +51,7 @@ theorem cpxs_beta: ∀h,p,G,L,V1,V2,W1,W2,T1,T2.
 qed.
 
 theorem cpxs_theta_rc: ∀h,p,G,L,V1,V,V2,W1,W2,T1,T2.
-                       â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â¬\86*[1] V ≘ V2 →
+                       â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â\87§*[1] V ≘ V2 →
                        ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈*[h] T2 → ⦃G,L⦄ ⊢ W1 ⬈*[h] W2 →
                        ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ⬈*[h] ⓓ{p}W2.ⓐV2.T2.
 #h #p #G #L #V1 #V #V2 #W1 #W2 #T1 #T2 #HV1 #HV2 #HT12 #H @(cpxs_ind … H) -W2
@@ -59,7 +59,7 @@ theorem cpxs_theta_rc: ∀h,p,G,L,V1,V,V2,W1,W2,T1,T2.
 qed.
 
 theorem cpxs_theta: ∀h,p,G,L,V1,V,V2,W1,W2,T1,T2.
-                    â¬\86*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ⬈*[h] W2 →
+                    â\87§*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ⬈*[h] W2 →
                     ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈*[h] T2 → ⦃G,L⦄ ⊢ V1 ⬈*[h] V →
                     ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ⬈*[h] ⓓ{p}W2.ⓐV2.T2.
 #h #p #G #L #V1 #V #V2 #W1 #W2 #T1 #T2 #HV2 #HW12 #HT12 #H @(TC_ind_dx … V1 H) -V1
@@ -72,7 +72,7 @@ lemma cpxs_inv_appl1: ∀h,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓐV1.T1 ⬈*[h] U2 →
                       ∨∨ ∃∃V2,T2.       ⦃G,L⦄ ⊢ V1 ⬈*[h] V2 & ⦃G,L⦄ ⊢ T1 ⬈*[h] T2 &
                                         U2 = ⓐV2.T2
                        | ∃∃p,W,T.       ⦃G,L⦄ ⊢ T1 ⬈*[h] ⓛ{p}W.T & ⦃G,L⦄ ⊢ ⓓ{p}ⓝW.V1.T ⬈*[h] U2
-                       | â\88\83â\88\83p,V0,V2,V,T. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88*[h] V0 & â¬\86*[1] V0 ≘ V2 &
+                       | â\88\83â\88\83p,V0,V2,V,T. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88*[h] V0 & â\87§*[1] V0 ≘ V2 &
                                         ⦃G,L⦄ ⊢ T1 ⬈*[h] ⓓ{p}V.T & ⦃G,L⦄ ⊢ ⓓ{p}V.ⓐV2.T ⬈*[h] U2.
 #h #G #L #V1 #T1 #U2 #H @(cpxs_ind … H) -U2 [ /3 width=5 by or3_intro0, ex3_2_intro/ ]
 #U #U2 #_ #HU2 * *
index 09ba0f251932c474629c31958aaeed997f4a49a4..92c0ca4b611b72d97f7ee3ee6d05d41280e128e9 100644 (file)
@@ -21,7 +21,7 @@ include "basic_2/rt_computation/cpxs.ma".
 (* Advanced properties ******************************************************)
 
 lemma cpxs_delta: ∀h,I,G,K,V1,V2. ⦃G,K⦄ ⊢ V1 ⬈*[h] V2 →
-                  â\88\80W2. â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈*[h] W2.
+                  â\88\80W2. â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈*[h] W2.
 #h #I #G #K #V1 #V2 #H @(cpxs_ind … H) -V2
 [ /3 width=3 by cpx_cpxs, cpx_delta/
 | #V #V2 #_ #HV2 #IH #W2 #HVW2
@@ -31,7 +31,7 @@ lemma cpxs_delta: ∀h,I,G,K,V1,V2. ⦃G,K⦄ ⊢ V1 ⬈*[h] V2 →
 qed.
 
 lemma cpxs_lref: ∀h,I,G,K,T,i. ⦃G,K⦄ ⊢ #i ⬈*[h] T →
-                 â\88\80U. â¬\86*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈*[h] U.
+                 â\88\80U. â\87§*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈*[h] U.
 #h #I #G #K #T #i #H @(cpxs_ind … H) -T
 [ /3 width=3 by cpx_cpxs, cpx_lref/
 | #T0 #T #_ #HT2 #IH #U #HTU
@@ -42,8 +42,8 @@ qed.
 
 (* Basic_2A1: was: cpxs_delta *)
 lemma cpxs_delta_drops: ∀h,I,G,L,K,V1,V2,i.
-                        â¬\87*[i] L ≘ K.ⓑ{I}V1 → ⦃G,K⦄ ⊢ V1 ⬈*[h] V2 →
-                        â\88\80W2. â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬈*[h] W2.
+                        â\87©*[i] L ≘ K.ⓑ{I}V1 → ⦃G,K⦄ ⊢ V1 ⬈*[h] V2 →
+                        â\88\80W2. â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬈*[h] W2.
 #h #I #G #L #K #V1 #V2 #i #HLK #H @(cpxs_ind … H) -V2
 [ /3 width=7 by cpx_cpxs, cpx_delta_drops/
 | #V #V2 #_ #HV2 #IH #W2 #HVW2
@@ -56,7 +56,7 @@ qed.
 
 lemma cpxs_inv_zero1: ∀h,G,L,T2. ⦃G,L⦄ ⊢ #0 ⬈*[h] T2 →
                       T2 = #0 ∨
-                      â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88*[h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88*[h] V2 & â\87§*[1] V2 ≘ T2 &
                                    L = K.ⓑ{I}V1.
 #h #G #L #T2 #H @(cpxs_ind … H) -T2 /2 width=1 by or_introl/
 #T #T2 #_ #HT2 *
@@ -71,7 +71,7 @@ qed-.
 
 lemma cpxs_inv_lref1: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #↑i ⬈*[h] T2 →
                       T2 = #(↑i) ∨
-                      â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88*[h] T & â¬\86*[1] T ≘ T2 & L = K.ⓘ{I}.
+                      â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88*[h] T & â\87§*[1] T ≘ T2 & L = K.ⓘ{I}.
 #h #G #L #T2 #i #H @(cpxs_ind … H) -T2 /2 width=1 by or_introl/
 #T #T2 #_ #HT2 *
 [ #H destruct
@@ -86,8 +86,8 @@ qed-.
 (* Basic_2A1: was: cpxs_inv_lref1 *)
 lemma cpxs_inv_lref1_drops: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #i ⬈*[h] T2 →
                             T2 = #i ∨
-                            â\88\83â\88\83I,K,V1,T1. â¬\87*[i] L ≘ K.ⓑ{I}V1 & ⦃G,K⦄ ⊢ V1 ⬈*[h] T1 &
-                                         â¬\86*[↑i] T1 ≘ T2.
+                            â\88\83â\88\83I,K,V1,T1. â\87©*[i] L ≘ K.ⓑ{I}V1 & ⦃G,K⦄ ⊢ V1 ⬈*[h] T1 &
+                                         â\87§*[↑i] T1 ≘ T2.
 #h #G #L #T2 #i #H @(cpxs_ind … H) -T2 /2 width=1 by or_introl/
 #T #T2 #_ #HT2 *
 [ #H destruct
index f0782e12c2a0ff1a97ad6e158e3e26db1db3f626..8b6725af0c1e8de33d40a4e779b508bb37a7c0b1 100644 (file)
@@ -30,8 +30,8 @@ qed-.
 (* Note: probably this is an inversion lemma *)
 (* Basic_2A1: was: cpxs_fwd_delta *)
 lemma cpxs_fwd_delta_drops (h) (I) (G) (L) (K):
-      â\88\80V1,i. â¬\87*[i] L ≘ K.ⓑ{I}V1 →
-      â\88\80V2. â¬\86*[↑i] V1 ≘ V2 →
+      â\88\80V1,i. â\87©*[i] L ≘ K.ⓑ{I}V1 →
+      â\88\80V2. â\87§*[↑i] V1 ≘ V2 →
       ∀X2. ⦃G,L⦄ ⊢ #i ⬈*[h] X2 →
       ∨∨ #i ⩳ X2 | ⦃G,L⦄ ⊢ V2 ⬈*[h] X2.
 #h #I #G #L #K #V1 #i #HLK #V2 #HV12 #X2 #H
@@ -58,7 +58,7 @@ qed-.
 
 lemma cpxs_fwd_theta (h) (p) (G) (L):
            ∀V1,V,T,X2. ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}V.T ⬈*[h] X2 →
-           â\88\80V2. â¬\86*[1] V1 ≘ V2 →
+           â\88\80V2. â\87§*[1] V1 ≘ V2 →
            ∨∨ ⓐV1.ⓓ{p}V.T ⩳ X2 | ⦃G,L⦄ ⊢ ⓓ{p}V.ⓐV2.T ⬈*[h] X2.
 #h #p #G #L #V1 #V #T #X2 #H #V2 #HV12
 elim (cpxs_inv_appl1 … H) -H *
index bbd7c5c9def31a611380d507993b9214a5f8bcb4..20702a3546b1c91bc2980ad8ea02bf19ad415d8d 100644 (file)
@@ -37,8 +37,8 @@ qed-.
 
 (* Basic_2A1: was: cpxs_fwd_delta_vector *)
 lemma cpxs_fwd_delta_drops_vector (h) (I) (G) (L) (K):
-      â\88\80V1,i. â¬\87*[i] L ≘ K.ⓑ{I}V1 →
-      â\88\80V2. â¬\86*[↑i] V1 ≘ V2 →
+      â\88\80V1,i. â\87©*[i] L ≘ K.ⓑ{I}V1 →
+      â\88\80V2. â\87§*[↑i] V1 ≘ V2 →
       ∀Vs,X2. ⦃G,L⦄ ⊢ ⒶVs.#i ⬈*[h] X2 →
       ∨∨ ⒶVs.#i ⩳ X2 | ⦃G,L⦄ ⊢ ⒶVs.V2 ⬈*[h] X2.
 #h #I #G #L #K #V1 #i #HLK #V2 #HV12 #Vs
@@ -90,7 +90,7 @@ qed-.
 
 (* Basic_1: was just: pr3_iso_appls_abbr *)
 lemma cpxs_fwd_theta_vector (h) (G) (L):
-      â\88\80V1b,V2b. â¬\86*[1] V1b ≘ V2b →
+      â\88\80V1b,V2b. â\87§*[1] V1b ≘ V2b →
       ∀p,V,T,X2. ⦃G,L⦄ ⊢ ⒶV1b.ⓓ{p}V.T ⬈*[h] X2 →
       ∨∨ ⒶV1b.ⓓ{p}V.T ⩳ X2 | ⦃G,L⦄ ⊢ ⓓ{p}V.ⒶV2b.T ⬈*[h] X2.
 #h #G #L #V1b #V2b * -V1b -V2b /3 width=1 by or_intror/
index b0921440d36c723ed8c4d76c15db87d9e2ad519e..07cace3d31c49e554388f9c7a77226b905e613ae 100644 (file)
@@ -55,7 +55,7 @@ qed.
 (* Basic_1: was just: sn3_abbr *)
 (* Basic_2A1: was: csx_lref_bind *)
 lemma csx_lref_pair_drops (h) (G): 
-      â\88\80I,L,K,V,i. â¬\87*[i] L ≘ K.ⓑ{I}V →
+      â\88\80I,L,K,V,i. â\87©*[i] L ≘ K.ⓑ{I}V →
       ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄ → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃#i⦄.
 #h #G #I #L #K #V #i #HLK #HV
 @csx_intro #X #H #Hi elim (cpx_inv_lref1_drops … H) -H
@@ -71,7 +71,7 @@ qed.
 (* Basic_1: was: sn3_gen_def *)
 (* Basic_2A1: was: csx_inv_lref_bind *)
 lemma csx_inv_lref_pair_drops (h) (G):
-      â\88\80I,L,K,V,i. â¬\87*[i] L ≘ K.ⓑ{I}V →
+      â\88\80I,L,K,V,i. â\87©*[i] L ≘ K.ⓑ{I}V →
       ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃#i⦄ → ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄.
 #h #G #I #L #K #V #i #HLK #Hi
 elim (lifts_total V (𝐔❴↑i❵))
@@ -80,9 +80,9 @@ qed-.
 
 lemma csx_inv_lref_drops (h) (G):
       ∀L,i. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃#i⦄ →
-      â\88¨â\88¨ â¬\87*[Ⓕ,𝐔❴i❵] L ≘ ⋆
-       | â\88\83â\88\83I,K. â¬\87*[i] L ≘ K.ⓤ{I}
-       | â\88\83â\88\83I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄.
+      â\88¨â\88¨ â\87©*[Ⓕ,𝐔❴i❵] L ≘ ⋆
+       | â\88\83â\88\83I,K. â\87©*[i] L ≘ K.ⓤ{I}
+       | â\88\83â\88\83I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄.
 #h #G #L #i #H elim (drops_F_uni L i) /2 width=1 by or3_intro0/
 * * /4 width=9 by csx_inv_lref_pair_drops, ex2_3_intro, ex1_2_intro, or3_intro2, or3_intro1/
 qed-.
index 571a8154685126d61a309f77c45d6a7e071a5c35..53473452e01c0c6232775076d2817bbb35d48897 100644 (file)
@@ -39,8 +39,8 @@ elim (cpxs_fwd_beta_vector … H) -H #H
 qed.
 
 lemma csx_applv_delta_drops (h) (G):
-      â\88\80I,L,K,V1,i. â¬\87*[i] L ≘ K.ⓑ{I}V1 →
-      â\88\80V2. â¬\86*[↑i] V1 ≘ V2 →
+      â\88\80I,L,K,V1,i. â\87©*[i] L ≘ K.ⓑ{I}V1 →
+      â\88\80V2. â\87§*[↑i] V1 ≘ V2 →
       ∀Vs. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.V2⦄ → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.#i⦄.
 #h #G #I #L #K #V1 #i #HLK #V2 #HV12 #Vs elim Vs -Vs
 [ /4 width=11 by csx_inv_lifts, csx_lref_pair_drops, drops_isuni_fwd_drop2/
@@ -58,7 +58,7 @@ qed.
 
 (* Basic_1: was just: sn3_appls_abbr *)
 lemma csx_applv_theta (h) (G):
-      â\88\80p,L,V1b,V2b. â¬\86*[1] V1b ≘ V2b →
+      â\88\80p,L,V1b,V2b. â\87§*[1] V1b ≘ V2b →
       ∀V,T. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⓓ{p}V.ⒶV2b.T⦄ → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶV1b.ⓓ{p}V.T⦄.
 #h #G #p #L #V1b #V2b * -V1b -V2b /2 width=1 by/
 #V1b #V2b #V1 #V2 #HV12 #H
index 8c4f35b6ca572dda243a2f0aee5ac33965e2edcc..92e42f1f97b4be71df9b43544caf0b8c1e76c8b4 100644 (file)
@@ -71,7 +71,7 @@ lemma csx_bind (h) (G):
 qed.
 
 fact csx_appl_theta_aux (h) (G):
-     â\88\80p,L,U. â¦\83G,Lâ¦\84 â\8a¢ â¬\88*[h] ð\9d\90\92â¦\83Uâ¦\84 â\86\92 â\88\80V1,V2. â¬\86*[1] V1 ≘ V2 →
+     â\88\80p,L,U. â¦\83G,Lâ¦\84 â\8a¢ â¬\88*[h] ð\9d\90\92â¦\83Uâ¦\84 â\86\92 â\88\80V1,V2. â\87§*[1] V1 ≘ V2 →
      ∀V,T. U = ⓓ{p}V.ⓐV2.T → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⓐV1.ⓓ{p}V.T⦄.
 #h #G #p #L #X #H
 @(csx_ind_cpxs … H) -X #X #HVT #IHVT #V1 #V2 #HV12 #V #T #H destruct
@@ -107,5 +107,5 @@ qed-.
 
 lemma csx_appl_theta (h) (G):
       ∀p,L,V,V2,T. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⓓ{p}V.ⓐV2.T⦄ →
-      â\88\80V1. â¬\86*[1] V1 ≘ V2 → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⓐV1.ⓓ{p}V.T⦄.
+      â\88\80V1. â\87§*[1] V1 ≘ V2 → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⓐV1.ⓓ{p}V.T⦄.
 /2 width=5 by csx_appl_theta_aux/ qed.
index 93368d55426d59ca1d2286588edf2ba39245bf0b..7ac21a90d5d142b1254813193005e9bf2e38b567 100644 (file)
@@ -21,7 +21,7 @@ include "basic_2/rt_computation/jsx.ma".
 
 lemma jsx_fwd_drops_atom_sn (h) (b) (G):
       ∀L1,L2. G ⊢ L1 ⊒[h] L2 →
-      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f]L1 â\89\98 â\8b\86 â\86\92 â¬\87*[b,f]L2 ≘ ⋆.
+      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f]L1 â\89\98 â\8b\86 â\86\92 â\87©*[b,f]L2 ≘ ⋆.
 #h #b #G #L1 #L2 #H elim H -L1 -L2
 [ #f #_ #H //
 | #I #K1 #K2 #_ #IH #f #Hf #H
@@ -35,8 +35,8 @@ qed-.
 
 lemma jsx_fwd_drops_unit_sn (h) (b) (G):
       ∀L1,L2. G ⊢ L1 ⊒[h] L2 →
-      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80I,K1. â¬\87*[b,f]L1 ≘ K1.ⓤ{I} →
-      â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â¬\87*[b,f]L2 ≘ K2.ⓤ{I}.
+      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80I,K1. â\87©*[b,f]L1 ≘ K1.ⓤ{I} →
+      â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â\87©*[b,f]L2 ≘ K2.ⓤ{I}.
 #h #b #G #L1 #L2 #H elim H -L1 -L2
 [ #f #_ #J #Y1 #H
   lapply (drops_inv_atom1 … H) -H * #H #_ destruct
@@ -54,9 +54,9 @@ qed-.
 
 lemma jsx_fwd_drops_pair_sn (h) (b) (G):
       ∀L1,L2. G ⊢ L1 ⊒[h] L2 →
-      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80I,K1,V. â¬\87*[b,f]L1 ≘ K1.ⓑ{I}V →
-      â\88¨â\88¨ â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â¬\87*[b,f]L2 ≘ K2.ⓑ{I}V
-       | â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â¬\87*[b,f]L2 ≘ K2.ⓧ & G ⊢ ⬈*[h,V] 𝐒⦃K2⦄.
+      â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80I,K1,V. â\87©*[b,f]L1 ≘ K1.ⓑ{I}V →
+      â\88¨â\88¨ â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â\87©*[b,f]L2 ≘ K2.ⓑ{I}V
+       | â\88\83â\88\83K2. G â\8a¢ K1 â\8a\92[h] K2 & â\87©*[b,f]L2 ≘ K2.ⓧ & G ⊢ ⬈*[h,V] 𝐒⦃K2⦄.
 #h #b #G #L1 #L2 #H elim H -L1 -L2
 [ #f #_ #J #Y1 #X1 #H
   lapply (drops_inv_atom1 … H) -H * #H #_ destruct
index 591dbd1c1eeb46bbfa180b0e09ab75f14aae0af6..c75c79f8f58085c295a11dfde865510940d0ef5a 100644 (file)
@@ -75,7 +75,7 @@ qed-.
 lemma cpms_inv_abbr_sn_dx (n) (h) (G) (L):
                           ∀p,V1,T1,X2. ⦃G,L⦄ ⊢ ⓓ{p}V1.T1 ➡*[n,h] X2 →
                           ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ➡*[h] V2 & ⦃G,L.ⓓV1⦄ ⊢ T1 ➡*[n,h] T2 & X2 = ⓓ{p}V2.T2
-                           | â\88\83â\88\83T2. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â\9e¡*[n ,h] T2 & â¬\86*[1] X2 ≘ T2 & p = Ⓣ.
+                           | â\88\83â\88\83T2. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â\9e¡*[n ,h] T2 & â\87§*[1] X2 ≘ T2 & p = Ⓣ.
 #n #h #G #L #p #V1 #T1 #X2 #H
 @(cpms_ind_dx … H) -X2 -n /3 width=5 by ex3_2_intro, or_introl/
 #n1 #n2 #X #X2 #_ * *
@@ -96,7 +96,7 @@ qed-.
 (* Basic_2A1: uses: scpds_inv_abbr_abst *)
 lemma cpms_inv_abbr_abst (n) (h) (G) (L):
                          ∀p1,p2,V1,W2,T1,T2. ⦃G,L⦄ ⊢ ⓓ{p1}V1.T1 ➡*[n,h] ⓛ{p2}W2.T2 →
-                         â\88\83â\88\83T. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â\9e¡*[n,h] T & â¬\86*[1] ⓛ{p2}W2.T2 ≘ T & p1 = Ⓣ.
+                         â\88\83â\88\83T. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â\9e¡*[n,h] T & â\87§*[1] ⓛ{p2}W2.T2 ≘ T & p1 = Ⓣ.
 #n #h #G #L #p1 #p2 #V1 #W2 #T1 #T2 #H
 elim (cpms_inv_abbr_sn_dx … H) -H *
 [ #V #T #_ #_ #H destruct
index 611aab47bd68cbf362050ae69f517f6364f8d9d9..bf54e6acc1d08f337a2afaf4ba378c5e604d3c9e 100644 (file)
@@ -41,7 +41,7 @@ lemma cpxs_inv_abbr1_dx (h) (p) (G) (L):
                         ∀V1,T1,U2. ⦃G,L⦄ ⊢ ⓓ{p}V1.T1 ⬈*[h] U2 →
                         ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ⬈*[h] V2 & ⦃G,L.ⓓV1⦄ ⊢ T1 ⬈*[h] T2 &
                                     U2 = ⓓ{p}V2.T2
-                         | â\88\83â\88\83T2. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â¬\88*[h] T2 & â¬\86*[1] U2 ≘ T2 & p = Ⓣ.
+                         | â\88\83â\88\83T2. â¦\83G,L.â\93\93V1â¦\84 â\8a¢ T1 â¬\88*[h] T2 & â\87§*[1] U2 ≘ T2 & p = Ⓣ.
 #h #p #G #L #V1 #T1 #U2 #H
 @(cpxs_ind … H) -U2 /3 width=5 by ex3_2_intro, or_introl/
 #U0 #U2 #_ #HU02 * *
index 2e129485d333440341c42f2f03d36fcdb9a2e51e..a4c10c8e99b76f1f5f81394a1980da4ea4b6c84f 100644 (file)
@@ -38,7 +38,7 @@ lemma rsx_fwd_lref_pair_csx (h) (G):
 /2 width=4 by rsx_fwd_lref_pair_csx_aux/ qed-.
 
 lemma rsx_fwd_lref_pair_csx_drops (h) (G):
-      â\88\80I,K,V,i,L. â¬\87*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ → ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄.
+      â\88\80I,K,V,i,L. â\87©*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ → ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄.
 #h #G #I #K #V #i elim i -i
 [ #L #H >(drops_fwd_isid … H) -H
   /2 width=2 by rsx_fwd_lref_pair_csx/
@@ -57,15 +57,15 @@ lemma rsx_inv_lref_pair (h) (G):
 /3 width=2 by rsx_fwd_lref_pair_csx, rsx_fwd_pair, conj/ qed-.
 
 lemma rsx_inv_lref_pair_drops (h) (G):
-      â\88\80I,K,V,i,L. â¬\87*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ →
+      â\88\80I,K,V,i,L. â\87©*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ →
       ∧∧ ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄ & G ⊢ ⬈*[h,V] 𝐒⦃K⦄.
 /3 width=5 by rsx_fwd_lref_pair_csx_drops, rsx_fwd_lref_pair_drops, conj/ qed-.
 
 lemma rsx_inv_lref_drops (h) (G):
       ∀L,i. G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ →
-      â\88¨â\88¨ â¬\87*[Ⓕ,𝐔❴i❵] L ≘ ⋆
-       | â\88\83â\88\83I,K. â¬\87*[i] L ≘ K.ⓤ{I}
-       | â\88\83â\88\83I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄ & G ⊢ ⬈*[h,V] 𝐒⦃K⦄.
+      â\88¨â\88¨ â\87©*[Ⓕ,𝐔❴i❵] L ≘ ⋆
+       | â\88\83â\88\83I,K. â\87©*[i] L ≘ K.ⓤ{I}
+       | â\88\83â\88\83I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄ & G ⊢ ⬈*[h,V] 𝐒⦃K⦄.
 #h #G #L #i #H elim (drops_F_uni L i)
 [ /2 width=1 by or3_intro0/
 | * * /4 width=10 by rsx_fwd_lref_pair_csx_drops, rsx_fwd_lref_pair_drops, ex3_3_intro, ex1_2_intro, or3_intro2, or3_intro1/
@@ -102,7 +102,7 @@ lemma rsx_lref_pair (h) (G):
 (* Basic_2A1: uses: lsx_lref_be *)
 lemma rsx_lref_pair_drops (h) (G):
       ∀K,V. ⦃G,K⦄ ⊢ ⬈*[h] 𝐒⦃V⦄ → G ⊢ ⬈*[h,V] 𝐒⦃K⦄ →
-      â\88\80I,i,L. â¬\87*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
+      â\88\80I,i,L. â\87©*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
 #h #G #K #V #HV #HK #I #i elim i -i
 [ #L #H >(drops_fwd_isid … H) -H /2 width=1 by rsx_lref_pair/
 | #i #IH #L #H
index 64ebcd6669b08b2a5f4dda0c539bbf47b367ff85..15c7d4dfb45b2e01df3999ccee5d1fe195e39963 100644 (file)
@@ -43,13 +43,13 @@ qed-.
 (* Advanced properties ******************************************************)
 
 (* Basic_2A1: uses: lsx_lref_free *)
-lemma rsx_lref_atom_drops (h) (G): â\88\80L,i. â¬\87*[Ⓕ,𝐔❴i❵] L ≘ ⋆ → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
+lemma rsx_lref_atom_drops (h) (G): â\88\80L,i. â\87©*[Ⓕ,𝐔❴i❵] L ≘ ⋆ → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
 #h #G #L1 #i #HL1
 @(rsx_lifts … (#0) … HL1) -HL1 //
 qed.
 
 (* Basic_2A1: uses: lsx_lref_skip *)
-lemma rsx_lref_unit_drops (h) (G): â\88\80I,L,K,i. â¬\87*[i] L ≘ K.ⓤ{I} → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
+lemma rsx_lref_unit_drops (h) (G): â\88\80I,L,K,i. â\87©*[i] L ≘ K.ⓤ{I} → G ⊢ ⬈*[h,#i] 𝐒⦃L⦄.
 #h #G #I #L1 #K1 #i #HL1
 @(rsx_lifts … (#0) … HL1) -HL1 //
 qed.
@@ -59,7 +59,7 @@ qed.
 (* Basic_2A1: uses: lsx_fwd_lref_be *)
 lemma rsx_fwd_lref_pair_drops (h) (G):
       ∀L,i. G ⊢ ⬈*[h,#i] 𝐒⦃L⦄ →
-      â\88\80I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,V] 𝐒⦃K⦄.
+      â\88\80I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V → G ⊢ ⬈*[h,V] 𝐒⦃K⦄.
 #h #G #L #i #HL #I #K #V #HLK
 lapply (rsx_inv_lifts … HL … HLK … (#0) ?) -L
 /2 width=2 by rsx_fwd_pair/
index 3da6a15983bd05a8893b04f7f5d01cf76e30128c..7deb96dab6ad2f0573bb27fee012e468486c186f 100644 (file)
@@ -25,9 +25,9 @@ inductive cpce (h): relation4 genv lenv term term ≝
 | cpce_zero: ∀G,K,I. (∀n,p,W,V,U. I = BPair Abst W → ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V.U → ⊥) →
              cpce h G (K.ⓘ{I}) (#0) (#0)
 | cpce_eta : ∀n,p,G,K,W,V1,V2,W2,U. ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V1.U →
-             cpce h G K V1 V2 â\86\92 â¬\86*[1] V2 ≘ W2 → cpce h G (K.ⓛW) (#0) (+ⓛW2.ⓐ#0.#1)
+             cpce h G K V1 V2 â\86\92 â\87§*[1] V2 ≘ W2 → cpce h G (K.ⓛW) (#0) (+ⓛW2.ⓐ#0.#1)
 | cpce_lref: ∀I,G,K,T,U,i. cpce h G K (#i) T →
-             â¬\86*[1] T ≘ U → cpce h G (K.ⓘ{I}) (#↑i) U
+             â\87§*[1] T ≘ U → cpce h G (K.ⓘ{I}) (#↑i) U
 | cpce_gref: ∀G,L,l. cpce h G L (§l) (§l)
 | cpce_bind: ∀p,I,G,K,V1,V2,T1,T2.
              cpce h G K V1 V2 → cpce h G (K.ⓑ{I}V1) T1 T2 →
@@ -79,7 +79,7 @@ lemma cpce_inv_zero_sn (h) (G) (K) (X2):
       ∀I. ⦃G,K.ⓘ{I}⦄ ⊢ #0 ⬌η[h] X2 →
       ∨∨ ∧∧ ∀n,p,W,V,U. I = BPair Abst W → ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V.U → ⊥ & #0 = X2
        | ∃∃n,p,W,V1,V2,W2,U. ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V1.U & ⦃G,K⦄ ⊢ V1 ⬌η[h] V2
-                           & â¬\86*[1] V2 ≘ W2 & I = BPair Abst W & +ⓛW2.ⓐ#0.#1 = X2.
+                           & â\87§*[1] V2 ≘ W2 & I = BPair Abst W & +ⓛW2.ⓐ#0.#1 = X2.
 #h #G #Y0 #X2 #Z
 @(insert_eq_0 … (Y0.ⓘ{Z})) #Y
 @(insert_eq_0 … (#0)) #X1
@@ -97,7 +97,7 @@ qed-.
 
 lemma cpce_inv_lref_sn (h) (G) (K) (X2):
       ∀I,i. ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬌η[h] X2 →
-      â\88\83â\88\83T2. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\8cη[h] T2 & â¬\86*[1] T2 ≘ X2.
+      â\88\83â\88\83T2. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\8cη[h] T2 & â\87§*[1] T2 ≘ X2.
 #h #G #Y0 #X2 #Z #j
 @(insert_eq_0 … (Y0.ⓘ{Z})) #Y
 @(insert_eq_0 … (#↑j)) #X1
index 49bf1e88567369b3f0ddc29ccca205b3bf020fca..6e8afb63c7f156abf0a495e4716680811697f5e0 100644 (file)
@@ -22,8 +22,8 @@ include "basic_2/rt_conversion/cpce.ma".
 lemma cpce_eta_drops (h) (n) (G) (K):
       ∀p,W,V1,U. ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V1.U →
       ∀V2. ⦃G,K⦄ ⊢ V1 ⬌η[h] V2 →
-      â\88\80i,L. â¬\87*[i] L ≘ K.ⓛW →
-      â\88\80W2. â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬌η[h] +ⓛW2.ⓐ#0.#↑i.
+      â\88\80i,L. â\87©*[i] L ≘ K.ⓛW →
+      â\88\80W2. â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬌η[h] +ⓛW2.ⓐ#0.#↑i.
 #h #n #G #K #p #W #V1 #U #HWU #V2 #HV12 #i elim i -i
 [ #L #HLK #W2 #HVW2
   >(drops_fwd_isid … HLK) -L [| // ] /2 width=8 by cpce_eta/
@@ -35,7 +35,7 @@ lemma cpce_eta_drops (h) (n) (G) (K):
 qed.
 
 lemma cpce_zero_drops (h) (G):
-      â\88\80i,L. (â\88\80n,p,K,W,V,U. â¬\87*[i] L ≘ K.ⓛW → ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V.U → ⊥) →
+      â\88\80i,L. (â\88\80n,p,K,W,V,U. â\87©*[i] L ≘ K.ⓛW → ⦃G,K⦄ ⊢ W ➡*[n,h] ⓛ{p}V.U → ⊥) →
       ⦃G,L⦄ ⊢ #i ⬌η[h] #i.
 #h #G #i elim i -i
 [ * [ #_ // ] #L #I #Hi
index 8d9a8ce0e95d1dd8fd0ba45397f4efd849ac3b9a..2eebfb16db6f680326600143b7dca84201bf13b4 100644 (file)
@@ -21,7 +21,7 @@ include "basic_2/rt_transition/cnr.ma".
 
 (* Basic_1: was only: nf2_csort_lref *)
 lemma cnr_lref_atom (h) (b) (G) (L):
-      â\88\80i. â¬\87*[b,𝐔❴i❵] L ≘ ⋆ → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
+      â\88\80i. â\87©*[b,𝐔❴i❵] L ≘ ⋆ → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
 #h #b #G #L #i #Hi #X #H
 elim (cpr_inv_lref1_drops … H) -H // * #K #V1 #V2 #HLK
 lapply (drops_gen b … HLK) -HLK #HLK
@@ -30,7 +30,7 @@ qed.
 
 (* Basic_1: was: nf2_lref_abst *)
 lemma cnr_lref_abst (h) (G) (L):
-      â\88\80K,V,i. â¬\87*[i] L ≘ K.ⓛV → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
+      â\88\80K,V,i. â\87©*[i] L ≘ K.ⓛV → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
 #h #G #L #K #V #i #HLK #X #H
 elim (cpr_inv_lref1_drops … H) -H // *
 #K0 #V1 #V2 #HLK0 #_ #_
@@ -38,7 +38,7 @@ lapply (drops_mono … HLK … HLK0) -L #H destruct
 qed.
 
 lemma cnr_lref_unit (h) (I) (G) (L):
-      â\88\80K,i. â¬\87*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
+      â\88\80K,i. â\87©*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄.
 #h #I #G #L #K #i #HLK #X #H
 elim (cpr_inv_lref1_drops … H) -H // *
 #K0 #V1 #V2 #HLK0 #_ #_
@@ -59,7 +59,7 @@ qed-.
 
 (* Basic_2A1: was: cnr_inv_delta *)
 lemma cnr_inv_lref_abbr (h) (G) (L):
-      â\88\80K,V,i. â¬\87*[i] L ≘ K.ⓓV → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄ → ⊥.
+      â\88\80K,V,i. â\87©*[i] L ≘ K.ⓓV → ⦃G,L⦄ ⊢ ➡[h] 𝐍⦃#i⦄ → ⊥.
 #h #G #L #K #V #i #HLK #H
 elim (lifts_total V 𝐔❴↑i❵) #W #HVW
 lapply (H W ?) -H [ /3 width=6 by cpm_delta_drops/ ] -HLK #H destruct
index e532b364a13f277bc5087a985890f053f8cf0f81..70cffc7bd0a097257d8444b005b1385dbd44a8d6 100644 (file)
@@ -20,12 +20,12 @@ include "basic_2/rt_transition/cnx.ma".
 
 (* Properties with generic slicing ******************************************)
 
-lemma cnx_lref_atom: â\88\80h,G,L,i. â¬\87*[i] L ≘ ⋆ → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄.
+lemma cnx_lref_atom: â\88\80h,G,L,i. â\87©*[i] L ≘ ⋆ → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄.
 #h #G #L #i #Hi #X #H elim (cpx_inv_lref1_drops … H) -H // *
 #I #K #V1 #V2 #HLK lapply (drops_mono … Hi … HLK) -L #H destruct
 qed.
 
-lemma cnx_lref_unit: â\88\80h,I,G,L,K,i. â¬\87*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄.
+lemma cnx_lref_unit: â\88\80h,I,G,L,K,i. â\87©*[i] L ≘ K.ⓤ{I} → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄.
 #h #I #G #L #K #i #HLK #X #H elim (cpx_inv_lref1_drops … H) -H // *
 #Z #Y #V1 #V2 #HLY lapply (drops_mono … HLK … HLY) -L #H destruct
 qed.
@@ -40,7 +40,7 @@ qed-.
 (* Inversion lemmas with generic slicing ************************************)
 
 (* Basic_2A1: was: cnx_inv_delta *)
-lemma cnx_inv_lref_pair: â\88\80h,I,G,L,K,V,i. â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄ → ⊥.
+lemma cnx_inv_lref_pair: â\88\80h,I,G,L,K,V,i. â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃#i⦄ → ⊥.
 #h #I #G #L #K #V #i #HLK #H
 elim (lifts_total V (𝐔❴↑i❵)) #W #HVW
 lapply (H W ?) -H /2 width=7 by cpx_delta_drops/ -HLK
index 72656dd1ad04c852b33433f4790c709635316a59..75e0211d51bee3c1110521459098a47ce492a9d5 100644 (file)
@@ -27,11 +27,11 @@ inductive cpg (Rt:relation rtc) (h): rtc → relation4 genv lenv term term ≝
 | cpg_atom : ∀I,G,L. cpg Rt h (𝟘𝟘) G L (⓪{I}) (⓪{I})
 | cpg_ess  : ∀G,L,s. cpg Rt h (𝟘𝟙) G L (⋆s) (⋆(⫯[h]s))
 | cpg_delta: ∀c,G,L,V1,V2,W2. cpg Rt h c G L V1 V2 →
-             â¬\86*[1] V2 ≘ W2 → cpg Rt h c G (L.ⓓV1) (#0) W2
+             â\87§*[1] V2 ≘ W2 → cpg Rt h c G (L.ⓓV1) (#0) W2
 | cpg_ell  : ∀c,G,L,V1,V2,W2. cpg Rt h c G L V1 V2 →
-             â¬\86*[1] V2 ≘ W2 → cpg Rt h (c+𝟘𝟙) G (L.ⓛV1) (#0) W2
+             â\87§*[1] V2 ≘ W2 → cpg Rt h (c+𝟘𝟙) G (L.ⓛV1) (#0) W2
 | cpg_lref : ∀c,I,G,L,T,U,i. cpg Rt h c G L (#i) T → 
-             â¬\86*[1] T ≘ U → cpg Rt h c G (L.ⓘ{I}) (#↑i) U
+             â\87§*[1] T ≘ U → cpg Rt h c G (L.ⓘ{I}) (#↑i) U
 | cpg_bind : ∀cV,cT,p,I,G,L,V1,V2,T1,T2.
              cpg Rt h cV G L V1 V2 → cpg Rt h cT G (L.ⓑ{I}V1) T1 T2 →
              cpg Rt h ((↕*cV)∨cT) G L (ⓑ{p,I}V1.T1) (ⓑ{p,I}V2.T2)
@@ -41,7 +41,7 @@ inductive cpg (Rt:relation rtc) (h): rtc → relation4 genv lenv term term ≝
 | cpg_cast : ∀cU,cT,G,L,U1,U2,T1,T2. Rt cU cT →
              cpg Rt h cU G L U1 U2 → cpg Rt h cT G L T1 T2 →
              cpg Rt h (cU∨cT) G L (ⓝU1.T1) (ⓝU2.T2)
-| cpg_zeta : â\88\80c,G,L,V,T1,T,T2. â¬\86*[1] T ≘ T1 → cpg Rt h c G L T T2 →
+| cpg_zeta : â\88\80c,G,L,V,T1,T,T2. â\87§*[1] T ≘ T1 → cpg Rt h c G L T T2 →
              cpg Rt h (c+𝟙𝟘) G L (+ⓓV.T1) T2
 | cpg_eps  : ∀c,G,L,V,T1,T2. cpg Rt h c G L T1 T2 → cpg Rt h (c+𝟙𝟘) G L (ⓝV.T1) T2
 | cpg_ee   : ∀c,G,L,V1,V2,T. cpg Rt h c G L V1 V2 → cpg Rt h (c+𝟘𝟙) G L (ⓝV1.T) V2
@@ -49,7 +49,7 @@ inductive cpg (Rt:relation rtc) (h): rtc → relation4 genv lenv term term ≝
              cpg Rt h cV G L V1 V2 → cpg Rt h cW G L W1 W2 → cpg Rt h cT G (L.ⓛW1) T1 T2 →
              cpg Rt h (((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘) G L (ⓐV1.ⓛ{p}W1.T1) (ⓓ{p}ⓝW2.V2.T2)
 | cpg_theta: ∀cV,cW,cT,p,G,L,V1,V,V2,W1,W2,T1,T2.
-             cpg Rt h cV G L V1 V â\86\92 â¬\86*[1] V ≘ V2 → cpg Rt h cW G L W1 W2 →
+             cpg Rt h cV G L V1 V â\86\92 â\87§*[1] V ≘ V2 → cpg Rt h cW G L W1 W2 →
              cpg Rt h cT G (L.ⓓW1) T1 T2 →
              cpg Rt h (((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘) G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
 .
@@ -71,11 +71,11 @@ qed.
 fact cpg_inv_atom1_aux: ∀Rt,c,h,G,L,T1,T2. ⦃G,L⦄ ⊢ T1 ⬈[Rt,c,h] T2 → ∀J. T1 = ⓪{J} →
                         ∨∨ T2 = ⓪{J} ∧ c = 𝟘𝟘 
                          | ∃∃s. J = Sort s & T2 = ⋆(⫯[h]s) & c = 𝟘𝟙
-                         | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                         | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                          L = K.ⓓV1 & J = LRef 0 & c = cV
-                         | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                         | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                          L = K.ⓛV1 & J = LRef 0 & c = cV+𝟘𝟙
-                         | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â¬\86*[1] T ≘ T2 &
+                         | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â\87§*[1] T ≘ T2 &
                                       L = K.ⓘ{I} & J = LRef (↑i).
 #Rt #c #h #G #L #T1 #T2 * -c -G -L -T1 -T2
 [ #I #G #L #J #H destruct /3 width=1 by or5_intro0, conj/
@@ -97,11 +97,11 @@ qed-.
 lemma cpg_inv_atom1: ∀Rt,c,h,J,G,L,T2. ⦃G,L⦄ ⊢ ⓪{J} ⬈[Rt,c,h] T2 →
                      ∨∨ T2 = ⓪{J} ∧ c = 𝟘𝟘 
                       | ∃∃s. J = Sort s & T2 = ⋆(⫯[h]s) & c = 𝟘𝟙
-                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       L = K.ⓓV1 & J = LRef 0 & c = cV
-                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       L = K.ⓛV1 & J = LRef 0 & c = cV+𝟘𝟙
-                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â¬\86*[1] T ≘ T2 &
+                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â\87§*[1] T ≘ T2 &
                                    L = K.ⓘ{I} & J = LRef (↑i).
 /2 width=3 by cpg_inv_atom1_aux/ qed-.
 
@@ -117,9 +117,9 @@ qed-.
 
 lemma cpg_inv_zero1: ∀Rt,c,h,G,L,T2. ⦃G,L⦄ ⊢ #0 ⬈[Rt,c,h] T2 →
                      ∨∨ T2 = #0 ∧ c = 𝟘𝟘
-                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       L = K.ⓓV1 & c = cV
-                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83cV,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       L = K.ⓛV1 & c = cV+𝟘𝟙.
 #Rt #c #h #G #L #T2 #H
 elim (cpg_inv_atom1 … H) -H * /3 width=1 by or3_intro0, conj/
@@ -131,7 +131,7 @@ qed-.
 
 lemma cpg_inv_lref1: ∀Rt,c,h,G,L,T2,i. ⦃G,L⦄ ⊢ #↑i ⬈[Rt,c,h] T2 →
                      ∨∨ T2 = #(↑i) ∧ c = 𝟘𝟘
-                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â¬\86*[1] T ≘ T2 & L = K.ⓘ{I}.
+                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â\87§*[1] T ≘ T2 & L = K.ⓘ{I}.
 #Rt #c #h #G #L #T2 #i #H
 elim (cpg_inv_atom1 … H) -H * /3 width=1 by or_introl, conj/
 [ #s #H destruct
@@ -153,7 +153,7 @@ fact cpg_inv_bind1_aux: ∀Rt,c,h,G,L,U,U2. ⦃G,L⦄ ⊢ U ⬈[Rt,c,h] U2 →
                         ∀p,J,V1,U1. U = ⓑ{p,J}V1.U1 →
                         ∨∨ ∃∃cV,cT,V2,T2. ⦃G,L⦄ ⊢ V1 ⬈[Rt,cV,h] V2 & ⦃G,L.ⓑ{J}V1⦄ ⊢ U1 ⬈[Rt,cT,h] T2 &
                                           U2 = ⓑ{p,J}V2.T2 & c = ((↕*cV)∨cT)
-                         | â\88\83â\88\83cT,T. â¬\86*[1] T ≘ U1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 & 
+                         | â\88\83â\88\83cT,T. â\87§*[1] T ≘ U1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 & 
                                    p = true & J = Abbr & c = cT+𝟙𝟘.
 #Rt #c #h #G #L #U #U2 * -c -G -L -U -U2
 [ #I #G #L #q #J #W #U1 #H destruct
@@ -175,14 +175,14 @@ qed-.
 lemma cpg_inv_bind1: ∀Rt,c,h,p,I,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓑ{p,I}V1.T1 ⬈[Rt,c,h] U2 →
                      ∨∨ ∃∃cV,cT,V2,T2. ⦃G,L⦄ ⊢ V1 ⬈[Rt,cV,h] V2 & ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                        U2 = ⓑ{p,I}V2.T2 & c = ((↕*cV)∨cT)
-                      | â\88\83â\88\83cT,T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 &
+                      | â\88\83â\88\83cT,T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 &
                                 p = true & I = Abbr & c = cT+𝟙𝟘.
 /2 width=3 by cpg_inv_bind1_aux/ qed-.
 
 lemma cpg_inv_abbr1: ∀Rt,c,h,p,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓓ{p}V1.T1 ⬈[Rt,c,h] U2 →
                      ∨∨ ∃∃cV,cT,V2,T2. ⦃G,L⦄ ⊢ V1 ⬈[Rt,cV,h] V2 & ⦃G,L.ⓓV1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                        U2 = ⓓ{p}V2.T2 & c = ((↕*cV)∨cT)
-                      | â\88\83â\88\83cT,T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 &
+                      | â\88\83â\88\83cT,T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[Rt,cT,h] U2 &
                                 p = true & c = cT+𝟙𝟘.
 #Rt #c #h #p #G #L #V1 #T1 #U2 #H elim (cpg_inv_bind1 … H) -H *
 /3 width=8 by ex4_4_intro, ex4_2_intro, or_introl, or_intror/
@@ -203,7 +203,7 @@ fact cpg_inv_appl1_aux: ∀Rt,c,h,G,L,U,U2. ⦃G,L⦄ ⊢ U ⬈[Rt,c,h] U2 →
                                           U2 = ⓐV2.T2 & c = ((↕*cV)∨cT)
                          | ∃∃cV,cW,cT,p,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[Rt,cV,h] V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓛW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                                         U1 = ⓛ{p}W1.T1 & U2 = ⓓ{p}ⓝW2.V2.T2 & c = ((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘
-                         | â\88\83â\88\83cV,cW,cT,p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V & â¬\86*[1] V ≘ V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
+                         | â\88\83â\88\83cV,cW,cT,p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V & â\87§*[1] V ≘ V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                                           U1 = ⓓ{p}W1.T1 & U2 = ⓓ{p}W2.ⓐV2.T2 & c = ((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘.
 #Rt #c #h #G #L #U #U2 * -c -G -L -U -U2
 [ #I #G #L #W #U1 #H destruct
@@ -227,7 +227,7 @@ lemma cpg_inv_appl1: ∀Rt,c,h,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓐV1.U1 ⬈[Rt,c,h]
                                        U2 = ⓐV2.T2 & c = ((↕*cV)∨cT)
                       | ∃∃cV,cW,cT,p,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[Rt,cV,h] V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓛW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                                      U1 = ⓛ{p}W1.T1 & U2 = ⓓ{p}ⓝW2.V2.T2 & c = ((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘
-                      | â\88\83â\88\83cV,cW,cT,p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V & â¬\86*[1] V ≘ V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
+                      | â\88\83â\88\83cV,cW,cT,p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V & â\87§*[1] V ≘ V2 & ⦃G,L⦄ ⊢ W1 ⬈[Rt,cW,h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[Rt,cT,h] T2 &
                                                        U1 = ⓓ{p}W1.T1 & U2 = ⓓ{p}W2.ⓐV2.T2 & c = ((↕*cV)∨(↕*cW)∨cT)+𝟙𝟘.
 /2 width=3 by cpg_inv_appl1_aux/ qed-.
 
@@ -265,9 +265,9 @@ lemma cpg_inv_cast1: ∀Rt,c,h,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓝV1.U1 ⬈[Rt,c,h]
 
 lemma cpg_inv_zero1_pair: ∀Rt,c,h,I,G,K,V1,T2. ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈[Rt,c,h] T2 →
                           ∨∨ T2 = #0 ∧ c = 𝟘𝟘
-                           | â\88\83â\88\83cV,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                           | â\88\83â\88\83cV,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       I = Abbr & c = cV
-                           | â\88\83â\88\83cV,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                           | â\88\83â\88\83cV,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[Rt,cV,h] V2 & â\87§*[1] V2 ≘ T2 &
                                       I = Abst & c = cV+𝟘𝟙.
 #Rt #c #h #I #G #K #V1 #T2 #H elim (cpg_inv_zero1 … H) -H /2 width=1 by or3_intro0/
 * #z #Y #X1 #X2 #HX12 #HXT2 #H1 #H2 destruct /3 width=5 by or3_intro1, or3_intro2, ex4_2_intro/
@@ -275,7 +275,7 @@ qed-.
 
 lemma cpg_inv_lref1_bind: ∀Rt,c,h,I,G,K,T2,i. ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈[Rt,c,h] T2 →
                           ∨∨ T2 = #(↑i) ∧ c = 𝟘𝟘
-                           | â\88\83â\88\83T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â¬\86*[1] T ≘ T2.
+                           | â\88\83â\88\83T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[Rt,c,h] T & â\87§*[1] T ≘ T2.
 #Rt #c #h #I #G #L #T2 #i #H elim (cpg_inv_lref1 … H) -H /2 width=1 by or_introl/
 * #Z #Y #T #HT #HT2 #H destruct /3 width=3 by ex2_intro, or_intror/
 qed-.
index 977ec175d1728520f85d8fb8fde5cc712a6feaa2..3a079605548c2641e51709370e89bebf189b285c 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/rt_transition/cpg.ma".
 
 (* Advanced properties ******************************************************)
 
-lemma cpg_delta_drops: â\88\80Rt,c,h,G,K,V,V2,i,L,T2. â¬\87*[i] L ≘ K.ⓓV → ⦃G,K⦄ ⊢ V ⬈[Rt,c,h] V2 →
-                       â¬\86*[↑i] V2 ≘ T2 →  ⦃G,L⦄ ⊢ #i ⬈[Rt,c,h] T2.
+lemma cpg_delta_drops: â\88\80Rt,c,h,G,K,V,V2,i,L,T2. â\87©*[i] L ≘ K.ⓓV → ⦃G,K⦄ ⊢ V ⬈[Rt,c,h] V2 →
+                       â\87§*[↑i] V2 ≘ T2 →  ⦃G,L⦄ ⊢ #i ⬈[Rt,c,h] T2.
 #Rt #c #h #G #K #V #V2 #i elim i -i
 [ #L #T2 #HLK lapply (drops_fwd_isid … HLK ?) // #H destruct /3 width=3 by cpg_delta/
 | #i #IH #L0 #T0 #H0 #HV2 #HVT2
@@ -31,8 +31,8 @@ lemma cpg_delta_drops: ∀Rt,c,h,G,K,V,V2,i,L,T2. ⬇*[i] L ≘ K.ⓓV → ⦃G,
 ]
 qed.
 
-lemma cpg_ell_drops: â\88\80Rt,c,h,G,K,V,V2,i,L,T2. â¬\87*[i] L ≘ K.ⓛV → ⦃G,K⦄ ⊢ V ⬈[Rt,c,h] V2 →
-                     â¬\86*[↑i] V2 ≘ T2 →  ⦃G,L⦄ ⊢ #i ⬈[Rt,c+𝟘𝟙,h] T2.
+lemma cpg_ell_drops: â\88\80Rt,c,h,G,K,V,V2,i,L,T2. â\87©*[i] L ≘ K.ⓛV → ⦃G,K⦄ ⊢ V ⬈[Rt,c,h] V2 →
+                     â\87§*[↑i] V2 ≘ T2 →  ⦃G,L⦄ ⊢ #i ⬈[Rt,c+𝟘𝟙,h] T2.
 #Rt #c #h #G #K #V #V2 #i elim i -i
 [ #L #T2 #HLK lapply (drops_fwd_isid … HLK ?) // #H destruct /3 width=3 by cpg_ell/
 | #i #IH #L0 #T0 #H0 #HV2 #HVT2
@@ -45,10 +45,10 @@ qed.
 
 lemma cpg_inv_lref1_drops: ∀Rt,c,h,G,i,L,T2. ⦃G,L⦄ ⊢ #i ⬈[Rt,c,h] T2 →
                            ∨∨ T2 = #i ∧ c = 𝟘𝟘
-                            | â\88\83â\88\83cV,K,V,V2. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
-                                           â¬\86*[↑i] V2 ≘ T2 & c = cV
-                            | â\88\83â\88\83cV,K,V,V2. â¬\87*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
-                                           â¬\86*[↑i] V2 ≘ T2 & c = cV + 𝟘𝟙.
+                            | â\88\83â\88\83cV,K,V,V2. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
+                                           â\87§*[↑i] V2 ≘ T2 & c = cV
+                            | â\88\83â\88\83cV,K,V,V2. â\87©*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
+                                           â\87§*[↑i] V2 ≘ T2 & c = cV + 𝟘𝟙.
 #Rt #c #h #G #i elim i -i
 [ #L #T2 #H elim (cpg_inv_zero1 … H) -H * /3 width=1 by or3_intro0, conj/
   /4 width=8 by drops_refl, ex4_4_intro, or3_intro2, or3_intro1/
@@ -64,10 +64,10 @@ qed-.
 lemma cpg_inv_atom1_drops: ∀Rt,c,h,I,G,L,T2. ⦃G,L⦄ ⊢ ⓪{I} ⬈[Rt,c,h] T2 →
                            ∨∨ T2 = ⓪{I} ∧ c = 𝟘𝟘
                             | ∃∃s. T2 = ⋆(⫯[h]s) & I = Sort s & c = 𝟘𝟙
-                            | â\88\83â\88\83cV,i,K,V,V2. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
-                                             â¬\86*[↑i] V2 ≘ T2 & I = LRef i & c = cV
-                            | â\88\83â\88\83cV,i,K,V,V2. â¬\87*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
-                                             â¬\86*[↑i] V2 ≘ T2 & I = LRef i & c = cV + 𝟘𝟙.
+                            | â\88\83â\88\83cV,i,K,V,V2. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
+                                             â\87§*[↑i] V2 ≘ T2 & I = LRef i & c = cV
+                            | â\88\83â\88\83cV,i,K,V,V2. â\87©*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ⬈[Rt,cV,h] V2 &
+                                             â\87§*[↑i] V2 ≘ T2 & I = LRef i & c = cV + 𝟘𝟙.
 #Rt #c #h * #n #G #L #T2 #H
 [ elim (cpg_inv_sort1 … H) -H *
   /3 width=3 by or4_intro0, or4_intro1, ex3_intro, conj/
index c069b4ca0e625ef09521d807d3266d1d63bc897a..4a937f119b5f8b1cbd7700a0e0e4df8890ec5153 100644 (file)
@@ -36,19 +36,19 @@ lemma cpm_ess: ∀h,G,L,s. ⦃G,L⦄ ⊢ ⋆s ➡[1,h] ⋆(⫯[h]s).
 /2 width=3 by cpg_ess, ex2_intro/ qed.
 
 lemma cpm_delta: ∀n,h,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ➡[n,h] V2 →
-                 â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓓV1⦄ ⊢ #0 ➡[n,h] W2.
+                 â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓓV1⦄ ⊢ #0 ➡[n,h] W2.
 #n #h #G #K #V1 #V2 #W2 *
 /3 width=5 by cpg_delta, ex2_intro/
 qed.
 
 lemma cpm_ell: ∀n,h,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ➡[n,h] V2 →
-               â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓛV1⦄ ⊢ #0 ➡[↑n,h] W2.
+               â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓛV1⦄ ⊢ #0 ➡[↑n,h] W2.
 #n #h #G #K #V1 #V2 #W2 *
 /3 width=5 by cpg_ell, ex2_intro, isrt_succ/
 qed.
 
 lemma cpm_lref: ∀n,h,I,G,K,T,U,i. ⦃G,K⦄ ⊢ #i ➡[n,h] T →
-                â¬\86*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ➡[n,h] U.
+                â\87§*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ➡[n,h] U.
 #n #h #I #G #K #T #U #i *
 /3 width=5 by cpg_lref, ex2_intro/
 qed.
@@ -77,7 +77,7 @@ qed.
 
 (* Basic_2A1: includes: cpr_zeta *)
 lemma cpm_zeta (n) (h) (G) (L):
-               â\88\80T1,T. â¬\86*[1] T ≘ T1 → ∀T2. ⦃G,L⦄ ⊢ T ➡[n,h] T2 →
+               â\88\80T1,T. â\87§*[1] T ≘ T1 → ∀T2. ⦃G,L⦄ ⊢ T ➡[n,h] T2 →
                ∀V. ⦃G,L⦄ ⊢ +ⓓV.T1 ➡[n,h] T2.
 #n #h #G #L #T1 #T #HT1 #T2 *
 /3 width=5 by cpg_zeta, isrt_plus_O2, ex2_intro/
@@ -104,7 +104,7 @@ qed.
 
 (* Basic_2A1: includes: cpr_theta *)
 lemma cpm_theta: ∀n,h,p,G,L,V1,V,V2,W1,W2,T1,T2.
-                 â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V â\86\92 â¬\86*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ➡[h] W2 →
+                 â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V â\86\92 â\87§*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ➡[h] W2 →
                  ⦃G,L.ⓓW1⦄ ⊢ T1 ➡[n,h] T2 →
                  ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ➡[n,h] ⓓ{p}W2.ⓐV2.T2.
 #n #h #p #G #L #V1 #V #V2 #W1 #W2 #T1 #T2 * #riV #rhV #HV1 #HV2 * #riW #rhW #HW12 *
@@ -132,11 +132,11 @@ qed.
 lemma cpm_inv_atom1: ∀n,h,J,G,L,T2. ⦃G,L⦄ ⊢ ⓪{J} ➡[n,h] T2 →
                      ∨∨ T2 = ⓪{J} ∧ n = 0
                       | ∃∃s. T2 = ⋆(⫯[h]s) & J = Sort s & n = 1
-                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[n,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[n,h] V2 & â\87§*[1] V2 ≘ T2 &
                                    L = K.ⓓV1 & J = LRef 0
-                      | â\88\83â\88\83m,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[m,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83m,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[m,h] V2 & â\87§*[1] V2 ≘ T2 &
                                      L = K.ⓛV1 & J = LRef 0 & n = ↑m
-                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[n,h] T & â¬\86*[1] T ≘ T2 &
+                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[n,h] T & â\87§*[1] T ≘ T2 &
                                    L = K.ⓘ{I} & J = LRef (↑i).
 #n #h #J #G #L #T2 * #c #Hc #H elim (cpg_inv_atom1 … H) -H *
 [ #H1 #H2 destruct /4 width=1 by isrt_inv_00, or5_intro0, conj/
@@ -161,9 +161,9 @@ qed-.
 
 lemma cpm_inv_zero1: ∀n,h,G,L,T2. ⦃G,L⦄ ⊢ #0 ➡[n,h] T2 →
                      ∨∨ T2 = #0 ∧ n = 0
-                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[n,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[n,h] V2 & â\87§*[1] V2 ≘ T2 &
                                    L = K.ⓓV1
-                      | â\88\83â\88\83m,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[m,h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83m,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[m,h] V2 & â\87§*[1] V2 ≘ T2 &
                                      L = K.ⓛV1 & n = ↑m.
 #n #h #G #L #T2 * #c #Hc #H elim (cpg_inv_zero1 … H) -H *
 [ #H1 #H2 destruct /4 width=1 by isrt_inv_00, or3_intro0, conj/
@@ -187,7 +187,7 @@ qed.
 
 lemma cpm_inv_lref1: ∀n,h,G,L,T2,i. ⦃G,L⦄ ⊢ #↑i ➡[n,h] T2 →
                      ∨∨ T2 = #(↑i) ∧ n = 0
-                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[n,h] T & â¬\86*[1] T ≘ T2 & L = K.ⓘ{I}.
+                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[n,h] T & â\87§*[1] T ≘ T2 & L = K.ⓘ{I}.
 #n #h #G #L #T2 #i * #c #Hc #H elim (cpg_inv_lref1 … H) -H *
 [ #H1 #H2 destruct /4 width=1 by isrt_inv_00, or_introl, conj/
 | #I #K #V2 #HV2 #HVT2 #H destruct
@@ -219,7 +219,7 @@ qed-.
 lemma cpm_inv_bind1: ∀n,h,p,I,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓑ{p,I}V1.T1 ➡[n,h] U2 →
                      ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 & ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ➡[n,h] T2 &
                                  U2 = ⓑ{p,I}V2.T2
-                      | â\88\83â\88\83T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ➡[n,h] U2 & 
+                      | â\88\83â\88\83T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ➡[n,h] U2 & 
                              p = true & I = Abbr.
 #n #h #p #I #G #L #V1 #T1 #U2 * #c #Hc #H elim (cpg_inv_bind1 … H) -H *
 [ #cV #cT #V2 #T2 #HV12 #HT12 #H1 #H2 destruct
@@ -236,7 +236,7 @@ qed-.
 lemma cpm_inv_abbr1: ∀n,h,p,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓓ{p}V1.T1 ➡[n,h] U2 →
                      ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 & ⦃G,L.ⓓV1⦄ ⊢ T1 ➡[n,h] T2 &
                                  U2 = ⓓ{p}V2.T2
-                      | â\88\83â\88\83T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ➡[n,h] U2 & p = true.
+                      | â\88\83â\88\83T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ➡[n,h] U2 & p = true.
 #n #h #p #G #L #V1 #T1 #U2 #H
 elim (cpm_inv_bind1 … H) -H
 [ /3 width=1 by or_introl/
@@ -271,7 +271,7 @@ lemma cpm_inv_appl1: ∀n,h,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓐ V1.U1 ➡[n,h] U2 
                       | ∃∃p,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 & ⦃G,L⦄ ⊢ W1 ➡[h] W2 &
                                             ⦃G,L.ⓛW1⦄ ⊢ T1 ➡[n,h] T2 &
                                             U1 = ⓛ{p}W1.T1 & U2 = ⓓ{p}ⓝW2.V2.T2
-                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V & â¬\86*[1] V ≘ V2 &
+                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V & â\87§*[1] V ≘ V2 &
                                               ⦃G,L⦄ ⊢ W1 ➡[h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ➡[n,h] T2 &
                                               U1 = ⓓ{p}W1.T1 & U2 = ⓓ{p}W2.ⓐV2.T2.
 #n #h #G #L #V1 #U1 #U2 * #c #Hc #H elim (cpg_inv_appl1 … H) -H *
@@ -331,18 +331,18 @@ lemma cpm_ind (h): ∀Q:relation5 nat genv lenv term term.
                    (∀I,G,L. Q 0 G L (⓪{I}) (⓪{I})) →
                    (∀G,L,s. Q 1 G L (⋆s) (⋆(⫯[h]s))) →
                    (∀n,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ➡[n,h] V2 → Q n G K V1 V2 →
-                     â¬\86*[1] V2 ≘ W2 → Q n G (K.ⓓV1) (#0) W2
+                     â\87§*[1] V2 ≘ W2 → Q n G (K.ⓓV1) (#0) W2
                    ) → (∀n,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ➡[n,h] V2 → Q n G K V1 V2 →
-                     â¬\86*[1] V2 ≘ W2 → Q (↑n) G (K.ⓛV1) (#0) W2
+                     â\87§*[1] V2 ≘ W2 → Q (↑n) G (K.ⓛV1) (#0) W2
                    ) → (∀n,I,G,K,T,U,i. ⦃G,K⦄ ⊢ #i ➡[n,h] T → Q n G K (#i) T →
-                     â¬\86*[1] T ≘ U → Q n G (K.ⓘ{I}) (#↑i) (U)
+                     â\87§*[1] T ≘ U → Q n G (K.ⓘ{I}) (#↑i) (U)
                    ) → (∀n,p,I,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 → ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ➡[n,h] T2 →
                      Q 0 G L V1 V2 → Q n G (L.ⓑ{I}V1) T1 T2 → Q n G L (ⓑ{p,I}V1.T1) (ⓑ{p,I}V2.T2)
                    ) → (∀n,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 → ⦃G,L⦄ ⊢ T1 ➡[n,h] T2 →
                      Q 0 G L V1 V2 → Q n G L T1 T2 → Q n G L (ⓐV1.T1) (ⓐV2.T2)
                    ) → (∀n,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[n,h] V2 → ⦃G,L⦄ ⊢ T1 ➡[n,h] T2 →
                      Q n G L V1 V2 → Q n G L T1 T2 → Q n G L (ⓝV1.T1) (ⓝV2.T2)
-                   ) â\86\92 (â\88\80n,G,L,V,T1,T,T2. â¬\86*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ➡[n,h] T2 →
+                   ) â\86\92 (â\88\80n,G,L,V,T1,T,T2. â\87§*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ➡[n,h] T2 →
                      Q n G L T T2 → Q n G L (+ⓓV.T1) T2
                    ) → (∀n,G,L,V,T1,T2. ⦃G,L⦄ ⊢ T1 ➡[n,h] T2 →
                      Q n G L T1 T2 → Q n G L (ⓝV.T1) T2
@@ -353,7 +353,7 @@ lemma cpm_ind (h): ∀Q:relation5 nat genv lenv term term.
                      Q n G L (ⓐV1.ⓛ{p}W1.T1) (ⓓ{p}ⓝW2.V2.T2)
                    ) → (∀n,p,G,L,V1,V,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V → ⦃G,L⦄ ⊢ W1 ➡[h] W2 → ⦃G,L.ⓓW1⦄ ⊢ T1 ➡[n,h] T2 →
                      Q 0 G L V1 V → Q 0 G L W1 W2 → Q n G (L.ⓓW1) T1 T2 →
-                     â¬\86*[1] V ≘ V2 → Q n G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
+                     â\87§*[1] V ≘ V2 → Q n G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
                    ) →
                    ∀n,G,L,T1,T2. ⦃G,L⦄ ⊢ T1 ➡[n,h] T2 → Q n G L T1 T2.
 #h #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #IH9 #IH10 #IH11 #IH12 #IH13 #n #G #L #T1 #T2
index bc9463c958390c5a16ec878d6d4b3f5bf6d30fcf..3d465a9507de343ed672fd582b026372cf9df141 100644 (file)
@@ -50,15 +50,15 @@ qed-.
 (* Basic_1: includes: pr2_delta1 *)
 (* Basic_2A1: includes: cpr_delta *)
 lemma cpm_delta_drops: ∀n,h,G,L,K,V,V2,W2,i.
-                       â¬\87*[i] L ≘ K.ⓓV → ⦃G,K⦄ ⊢ V ➡[n,h] V2 →
-                       â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡[n,h] W2.
+                       â\87©*[i] L ≘ K.ⓓV → ⦃G,K⦄ ⊢ V ➡[n,h] V2 →
+                       â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡[n,h] W2.
 #n #h #G #L #K #V #V2 #W2 #i #HLK *
 /3 width=8 by cpg_delta_drops, ex2_intro/
 qed.
 
 lemma cpm_ell_drops: ∀n,h,G,L,K,V,V2,W2,i.
-                     â¬\87*[i] L ≘ K.ⓛV → ⦃G,K⦄ ⊢ V ➡[n,h] V2 →
-                     â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡[↑n,h] W2.
+                     â\87©*[i] L ≘ K.ⓛV → ⦃G,K⦄ ⊢ V ➡[n,h] V2 →
+                     â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ➡[↑n,h] W2.
 #n #h #G #L #K #V #V2 #W2 #i #HLK *
 /3 width=8 by cpg_ell_drops, isrt_succ, ex2_intro/
 qed.
@@ -68,10 +68,10 @@ qed.
 lemma cpm_inv_atom1_drops: ∀n,h,I,G,L,T2. ⦃G,L⦄ ⊢ ⓪{I} ➡[n,h] T2 →
                            ∨∨ T2 = ⓪{I} ∧ n = 0
                             | ∃∃s. T2 = ⋆(⫯[h]s) & I = Sort s & n = 1
-                            | â\88\83â\88\83K,V,V2,i. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[n,h] V2 &
-                                          â¬\86*[↑i] V2 ≘ T2 & I = LRef i
-                            | â\88\83â\88\83m,K,V,V2,i. â¬\87*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ➡[m,h] V2 &
-                                            â¬\86*[↑i] V2 ≘ T2 & I = LRef i & n = ↑m.
+                            | â\88\83â\88\83K,V,V2,i. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[n,h] V2 &
+                                          â\87§*[↑i] V2 ≘ T2 & I = LRef i
+                            | â\88\83â\88\83m,K,V,V2,i. â\87©*[i] L ≘ K.ⓛV & ⦃G,K⦄ ⊢ V ➡[m,h] V2 &
+                                            â\87§*[↑i] V2 ≘ T2 & I = LRef i & n = ↑m.
 #n #h #I #G #L #T2 * #c #Hc #H elim (cpg_inv_atom1_drops … H) -H *
 [ #H1 #H2 destruct lapply (isrt_inv_00 … Hc) -Hc
   /3 width=1 by or4_intro0, conj/
@@ -87,10 +87,10 @@ qed-.
 
 lemma cpm_inv_lref1_drops: ∀n,h,G,L,T2,i. ⦃G,L⦄ ⊢ #i ➡[n,h] T2 →
                            ∨∨ T2 = #i ∧ n = 0
-                            | â\88\83â\88\83K,V,V2. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[n,h] V2 &
-                                        â¬\86*[↑i] V2 ≘ T2
-                            | â\88\83â\88\83m,K,V,V2. â¬\87*[i] L ≘ K. ⓛV & ⦃G,K⦄ ⊢ V ➡[m,h] V2 &
-                                          â¬\86*[↑i] V2 ≘ T2 & n = ↑m.
+                            | â\88\83â\88\83K,V,V2. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[n,h] V2 &
+                                        â\87§*[↑i] V2 ≘ T2
+                            | â\88\83â\88\83m,K,V,V2. â\87©*[i] L ≘ K. ⓛV & ⦃G,K⦄ ⊢ V ➡[m,h] V2 &
+                                          â\87§*[↑i] V2 ≘ T2 & n = ↑m.
 #n #h #G #L #T2 #i * #c #Hc #H elim (cpg_inv_lref1_drops … H) -H *
 [ #H1 #H2 destruct lapply (isrt_inv_00 … Hc) -Hc
   /3 width=1 by or3_intro0, conj/
index 9d984e384c0af1d03322c75c3ddf7f5b13592032..ee72b61494255856179fdec182ba022777e6cba2 100644 (file)
@@ -37,9 +37,9 @@ qed.
 
 lemma cpr_inv_atom1: ∀h,J,G,L,T2. ⦃G,L⦄ ⊢ ⓪{J} ➡[h] T2 →
                      ∨∨ T2 = ⓪{J}
-                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[h] V2 & â\87§*[1] V2 ≘ T2 &
                                    L = K.ⓓV1 & J = LRef 0
-                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[h] T & â¬\86*[1] T ≘ T2 &
+                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[h] T & â\87§*[1] T ≘ T2 &
                                    L = K.ⓘ{I} & J = LRef (↑i).
 #h #J #G #L #T2 #H elim (cpm_inv_atom1 … H) -H *
 [2,4:|*: /3 width=8 by or3_intro0, or3_intro1, or3_intro2, ex4_4_intro, ex4_3_intro/ ]
@@ -55,7 +55,7 @@ qed-.
 
 lemma cpr_inv_zero1: ∀h,G,L,T2. ⦃G,L⦄ ⊢ #0 ➡[h] T2 →
                      ∨∨ T2 = #0
-                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â\9e¡[h] V2 & â\87§*[1] V2 ≘ T2 &
                                    L = K.ⓓV1.
 #h #G #L #T2 #H elim (cpm_inv_zero1 … H) -H *
 /3 width=6 by ex3_3_intro, or_introl, or_intror/
@@ -64,7 +64,7 @@ qed-.
 
 lemma cpr_inv_lref1: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #↑i ➡[h] T2 →
                      ∨∨ T2 = #(↑i)
-                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[h] T & â¬\86*[1] T ≘ T2 & L = K.ⓘ{I}.
+                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â\9e¡[h] T & â\87§*[1] T ≘ T2 & L = K.ⓘ{I}.
 #h #G #L #T2 #i #H elim (cpm_inv_lref1 … H) -H *
 /3 width=6 by ex3_3_intro, or_introl, or_intror/
 qed-.
@@ -89,7 +89,7 @@ lemma cpr_inv_flat1: ∀h,I,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓕ{I}V1.U1 ➡[h] U2 
                       | ∃∃p,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 & ⦃G,L⦄ ⊢ W1 ➡[h] W2 &
                                             ⦃G,L.ⓛW1⦄ ⊢ T1 ➡[h] T2 & U1 = ⓛ{p}W1.T1 &
                                             U2 = ⓓ{p}ⓝW2.V2.T2 & I = Appl
-                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V & â¬\86*[1] V ≘ V2 &
+                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â\9e¡[h] V & â\87§*[1] V ≘ V2 &
                                               ⦃G,L⦄ ⊢ W1 ➡[h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ➡[h] T2 &
                                               U1 = ⓓ{p}W1.T1 &
                                               U2 = ⓓ{p}W2.ⓐV2.T2 & I = Appl.
@@ -106,14 +106,14 @@ qed-.
 lemma cpr_ind (h): ∀Q:relation4 genv lenv term term.
                    (∀I,G,L. Q G L (⓪{I}) (⓪{I})) →
                    (∀G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ➡[h] V2 → Q G K V1 V2 →
-                     â¬\86*[1] V2 ≘ W2 → Q G (K.ⓓV1) (#0) W2
+                     â\87§*[1] V2 ≘ W2 → Q G (K.ⓓV1) (#0) W2
                    ) → (∀I,G,K,T,U,i. ⦃G,K⦄ ⊢ #i ➡[h] T → Q G K (#i) T →
-                     â¬\86*[1] T ≘ U → Q G (K.ⓘ{I}) (#↑i) (U)
+                     â\87§*[1] T ≘ U → Q G (K.ⓘ{I}) (#↑i) (U)
                    ) → (∀p,I,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 → ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ➡[h] T2 →
                      Q G L V1 V2 → Q G (L.ⓑ{I}V1) T1 T2 → Q G L (ⓑ{p,I}V1.T1) (ⓑ{p,I}V2.T2)
                    ) → (∀I,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V2 → ⦃G,L⦄ ⊢ T1 ➡[h] T2 →
                      Q G L V1 V2 → Q G L T1 T2 → Q G L (ⓕ{I}V1.T1) (ⓕ{I}V2.T2)
-                   ) â\86\92 (â\88\80G,L,V,T1,T,T2. â¬\86*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ➡[h] T2 →
+                   ) â\86\92 (â\88\80G,L,V,T1,T,T2. â\87§*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ➡[h] T2 →
                      Q G L T T2 → Q G L (+ⓓV.T1) T2
                    ) → (∀G,L,V,T1,T2. ⦃G,L⦄ ⊢ T1 ➡[h] T2 → Q G L T1 T2 →
                      Q G L (ⓝV.T1) T2
@@ -122,7 +122,7 @@ lemma cpr_ind (h): ∀Q:relation4 genv lenv term term.
                      Q G L (ⓐV1.ⓛ{p}W1.T1) (ⓓ{p}ⓝW2.V2.T2)
                    ) → (∀p,G,L,V1,V,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ➡[h] V → ⦃G,L⦄ ⊢ W1 ➡[h] W2 → ⦃G,L.ⓓW1⦄ ⊢ T1 ➡[h] T2 →
                      Q G L V1 V → Q G L W1 W2 → Q G (L.ⓓW1) T1 T2 →
-                     â¬\86*[1] V ≘ V2 → Q G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
+                     â\87§*[1] V ≘ V2 → Q G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
                    ) →
                    ∀G,L,T1,T2. ⦃G,L⦄ ⊢ T1 ➡[h] T2 → Q G L T1 T2.
 #h #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #IH9 #G #L #T1 #T2
index afd2d3fda6e7a341cdcbf2407faf3e6d49899f4f..9fd1974a1dd855c851cbb6157c80b4c84b683a05 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/rt_transition/cpm_drops.ma".
 (* Basic_2A1: includes: cpr_inv_atom1 *)
 lemma cpr_inv_atom1_drops: ∀h,I,G,L,T2. ⦃G,L⦄ ⊢ ⓪{I} ➡[h] T2 →
                            ∨∨ T2 = ⓪{I}
-                            | â\88\83â\88\83K,V,V2,i. â¬\87*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[h] V2 &
-                                          â¬\86*[↑i] V2 ≘ T2 & I = LRef i.
+                            | â\88\83â\88\83K,V,V2,i. â\87©*[i] L ≘ K.ⓓV & ⦃G,K⦄ ⊢ V ➡[h] V2 &
+                                          â\87§*[↑i] V2 ≘ T2 & I = LRef i.
 #h #I #G #L #T2 #H elim (cpm_inv_atom1_drops … H) -H *
 [ /2 width=1 by or_introl/
 | #s #_ #_ #H destruct
@@ -35,8 +35,8 @@ qed-.
 (* Basic_2A1: includes: cpr_inv_lref1 *)
 lemma cpr_inv_lref1_drops: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #i ➡[h] T2 →
                            ∨∨ T2 = #i
-                            | â\88\83â\88\83K,V,V2. â¬\87*[i] L ≘ K. ⓓV & ⦃G,K⦄ ⊢ V ➡[h] V2 &
-                                        â¬\86*[↑i] V2 ≘ T2.
+                            | â\88\83â\88\83K,V,V2. â\87©*[i] L ≘ K. ⓓV & ⦃G,K⦄ ⊢ V ➡[h] V2 &
+                                        â\87§*[↑i] V2 ≘ T2.
 #h #G #L #T2 #i #H elim (cpm_inv_lref1_drops … H) -H *
 [ /2 width=1 by or_introl/
 | /3 width=6 by ex3_3_intro, or_intror/
index ab99dbfca2bdbbbcf68b415e530df611ca13e8f8..e01180f09a106b3a468d0348036c016dbe08a1e7 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/rt_transition/cpr.ma".
 (* Properties with basic relocation *****************************************)
 
 lemma cpr_subst (h) (G) (L) (U1) (i):
-                â\88\80K,V. â¬\87*[i] L ≘ K.ⓓV →
-                â\88\83â\88\83U2,T2. â¦\83G,Lâ¦\84 â\8a¢ U1 â\9e¡[h] U2 & â¬\86[i,1] T2 ≘ U2.
+                â\88\80K,V. â\87©*[i] L ≘ K.ⓓV →
+                â\88\83â\88\83U2,T2. â¦\83G,Lâ¦\84 â\8a¢ U1 â\9e¡[h] U2 & â\87§[i,1] T2 ≘ U2.
 #h #G #L #U1 @(fqup_wf_ind_eq (Ⓣ) … G L U1) -G -L -U1
 #G0 #L0 #U0 #IH #G #L * *
 [ #s #HG #HL #HT #i #K #V #_ destruct -IH
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt.ma
new file mode 100644 (file)
index 0000000..0ccb505
--- /dev/null
@@ -0,0 +1,95 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "ground_2/steps/rtc_ist_shift.ma".
+include "ground_2/steps/rtc_ist_plus.ma".
+include "ground_2/steps/rtc_ist_max.ma".
+include "basic_2/notation/relations/pty_6.ma".
+include "basic_2/rt_transition/cpg.ma".
+
+(* T-BOUND CONTEXT-SENSITIVE PARALLEL T-TRANSITION FOR TERMS ****************)
+
+definition cpt (h) (G) (L) (n): relation2 term term ≝
+           λT1,T2. ∃∃c. 𝐓⦃n,c⦄ & ⦃G,L⦄ ⊢ T1 ⬈[eq …,c,h] T2.
+
+interpretation
+  "t-bound context-sensitive parallel t-transition (term)"
+  'PTy h n G L T1 T2 = (cpt h G L n T1 T2).
+
+(* Basic properties *********************************************************)
+
+lemma cpt_ess (h) (G) (L):
+      ∀s. ⦃G,L⦄ ⊢ ⋆s ⬆[h,1] ⋆(⫯[h]s).
+/2 width=3 by cpg_ess, ex2_intro/ qed.
+
+lemma cpt_delta (h) (n) (G) (K):
+      ∀V1,V2. ⦃G,K⦄ ⊢ V1 ⬆[h,n] V2 →
+      ∀W2. ⇧*[1] V2 ≘ W2 → ⦃G,K.ⓓV1⦄ ⊢ #0 ⬆[h,n] W2.
+#h #n #G #K #V1 #V2 *
+/3 width=5 by cpg_delta, ex2_intro/
+qed.
+
+lemma cpt_ell (h) (n) (G) (K):
+      ∀V1,V2. ⦃G,K⦄ ⊢ V1 ⬆[h,n] V2 →
+      ∀W2. ⇧*[1] V2 ≘ W2 → ⦃G,K.ⓛV1⦄ ⊢ #0 ⬆[h,↑n] W2.
+#h #n #G #K #V1 #V2 *
+/3 width=5 by cpg_ell, ex2_intro, ist_succ/
+qed.
+
+lemma cpt_lref (h) (n) (G) (K):
+      ∀T,i. ⦃G,K⦄ ⊢ #i ⬆[h,n] T → ∀U. ⇧*[1] T ≘ U →
+      ∀I. ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬆[h,n] U.
+#h #n #G #K #T #i *
+/3 width=5 by cpg_lref, ex2_intro/
+qed.
+
+lemma cpt_bind (h) (n) (G) (L):
+      ∀V1,V2. ⦃G,L⦄ ⊢ V1 ⬆[h,0] V2 → ∀I,T1,T2. ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ⬆[h,n] T2 →
+      ∀p. ⦃G,L⦄ ⊢ ⓑ{p,I}V1.T1 ⬆[h,n] ⓑ{p,I}V2.T2.
+#h #n #G #L #V1 #V2 * #cV #HcV #HV12 #I #T1 #T2 *
+/3 width=5 by cpg_bind, ist_max_O1, ex2_intro/
+qed.
+
+lemma cpt_appl (h) (n) (G) (L):
+      ∀V1,V2. ⦃G,L⦄ ⊢ V1 ⬆[h,0] V2 →
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 ⬆[h,n] T2 → ⦃G,L⦄ ⊢ ⓐV1.T1 ⬆[h,n] ⓐV2.T2.
+#h #n #G #L #V1 #V2 * #cV #HcV #HV12 #T1 #T2 *
+/3 width=5 by ist_max_O1, cpg_appl, ex2_intro/
+qed.
+
+lemma cpt_cast (h) (n) (G) (L):
+      ∀U1,U2. ⦃G,L⦄ ⊢ U1 ⬆[h,n] U2 →
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 ⬆[h,n] T2 → ⦃G,L⦄ ⊢ ⓝU1.T1 ⬆[h,n] ⓝU2.T2.
+#h #n #G #L #U1 #U2 * #cU #HcU #HU12 #T1 #T2 *
+/3 width=6 by cpg_cast, ex2_intro/
+qed.
+
+lemma cpt_ee (h) (n) (G) (L):
+      ∀U1,U2. ⦃G,L⦄ ⊢ U1 ⬆[h,n] U2 → ∀T. ⦃G,L⦄ ⊢ ⓝU1.T ⬆[h,↑n] U2.
+#h #n #G #L #V1 #V2 *
+/3 width=3 by cpg_ee, ist_succ, ex2_intro/
+qed.
+
+(* Basic properties *********************************************************)
+
+lemma cpt_refl (h) (G) (L): reflexive … (cpt h G L 0).
+/3 width=3 by cpg_refl, ex2_intro/ qed.
+
+(* Advanced properties ******************************************************)
+
+lemma cpt_sort (h) (G) (L):
+      ∀n. n ≤ 1 → ∀s. ⦃G,L⦄ ⊢ ⋆s ⬆[h,n] ⋆((next h)^n s).
+#h #G #L * //
+#n #H #s <(le_n_O_to_eq n) /2 width=1 by le_S_S_to_le/
+qed.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_cpm.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_cpm.ma
new file mode 100644 (file)
index 0000000..c37ddc2
--- /dev/null
@@ -0,0 +1,66 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/rt_transition/cpm_drops.ma".
+include "basic_2/rt_transition/cpt_drops.ma".
+
+(* T-BOUND CONTEXT-SENSITIVE PARALLEL T-TRANSITION FOR TERMS ****************)
+
+(* Properties with t-bound rt-transition for terms **************************)
+
+lemma cpm_cpt_cpr (h) (n) (G) (L):
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 ➡[n,h] T2 →
+      ∃∃T0. ⦃G,L⦄ ⊢ T1 ⬆[h,n] T0 & ⦃G,L⦄ ⊢ T0 ➡[h] T2.
+#h #n #G #L #T1 #T2 #H
+@(cpm_ind … H) -n -G -L -T1 -T2
+[ #I #G #L /2 width=3 by ex2_intro/
+| #G #L #s /3 width=3 by cpm_sort, ex2_intro/
+| #n #G #K #V1 #V2 #W2 #_ * #V0 #HV10 #HV02 #HVW2
+  elim (lifts_total V0 (𝐔❴1❵)) #W0 #HVW0
+  lapply (cpm_lifts_bi … HV02 (Ⓣ) … (K.ⓓV1) … HVW0 … HVW2) -HVW2
+  [ /3 width=1 by drops_refl, drops_drop/ ] -HV02 #HW02
+  /3 width=3 by cpt_delta, ex2_intro/
+| #n #G #K #V1 #V2 #W2 #_ * #V0 #HV10 #HV02 #HVW2
+  elim (lifts_total V0 (𝐔❴1❵)) #W0 #HVW0
+  lapply (cpm_lifts_bi … HV02 (Ⓣ) … (K.ⓛV1) … HVW0 … HVW2) -HVW2
+  [ /3 width=1 by drops_refl, drops_drop/ ] -HV02 #HW02
+  /3 width=3 by cpt_ell, ex2_intro/
+| #n #I #G #K #T2 #U2 #i #_ * #T0 #HT0 #HT02 #HTU2
+  elim (lifts_total T0 (𝐔❴1❵)) #U0 #HTU0
+  lapply (cpm_lifts_bi … HT02 (Ⓣ) … (K.ⓘ{I}) … HTU0 … HTU2) -HTU2
+  [ /3 width=1 by drops_refl, drops_drop/ ] -HT02 #HU02
+  /3 width=3 by cpt_lref, ex2_intro/
+| #n #p #I #G #L #V1 #V2 #T1 #T2 #HV12 #_ #_ * #T0 #HT10 #HT02
+  /3 width=5 by cpt_bind, cpm_bind, ex2_intro/
+| #n #G #L #V1 #V2 #T1 #T2 #HV12 #_ #_ * #T0 #HT10 #HT02
+  /3 width=5 by cpt_appl, cpm_appl, ex2_intro/
+| #n #G #L #V1 #V2 #T1 #T2 #_ #_ * #V0 #HV10 #HV02 * #T0 #HT10 #HT02
+  /3 width=5 by cpt_cast, cpm_cast, ex2_intro/
+| #n #G #L #V #U1 #T1 #T2 #HTU1 #_ * #T0 #HT10 #HT02
+  elim (cpt_lifts_sn … HT10 (Ⓣ) … (L.ⓓV) … HTU1) -T1
+  [| /3 width=1 by drops_refl, drops_drop/ ] #U0 #HTU0 #HU10
+  /3 width=6 by cpt_bind, cpm_zeta, ex2_intro/
+| #n #G #L #U #T1 #T2 #_ * #T0 #HT10 #HT02
+| #n #G #L #U1 #U2 #T #_ * #U0 #HU10 #HU02
+  /3 width=3 by cpt_ee, ex2_intro/
+| #n #p #G #L #V1 #V2 #W1 #W2 #T1 #T2 #HV12 #HW12 #_ #_ #_ * #T0 #HT10 #HT02
+  /4 width=7 by cpt_appl, cpt_bind, cpm_beta, ex2_intro/
+| #n #p #G #L #V1 #V2 #V0 #W1 #W2 #T1 #T2 #HV12 #HW12 #_ #_ #_ * #T0 #HT10 #HT02 #HV20
+  /4 width=9 by cpt_appl, cpt_bind, cpm_theta, ex2_intro/
+]
+
+(* Forward lemmas with t-bound rt-transition for terms **********************)
+
+lemma cpt_fwd_cpm (h) (n) (G) (L):
+      ∀T1,T2. ⦃G,L⦄ ⊢ T1 ⬆[h,n] T2 → ⦃G,L⦄ ⊢ T1 ➡[n,h] T2.
\ No newline at end of file
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_drops.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/cpt_drops.ma
new file mode 100644 (file)
index 0000000..6447e51
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/rt_transition/cpg_drops.ma".
+include "basic_2/rt_transition/cpt.ma".
+
+(* T-BOUND CONTEXT-SENSITIVE PARALLEL T-TRANSITION FOR TERMS ****************)
+
+(* Properties with generic slicing for local environments *******************)
+
+lemma cpt_lifts_sn (h) (n) (G):
+      d_liftable2_sn … lifts (λL. cpt h G L n).
+#h #n #G #K #T1 #T2 * #c #Hc #HT12 #b #f #L #HLK #U1 #HTU1
+elim (cpg_lifts_sn … HT12 … HLK … HTU1) -K -T1
+/3 width=5 by ex2_intro/
+qed-.
+
+lemma cpt_lifts_bi (h) (n) (G):
+      d_liftable2_bi … lifts (λL. cpt h G L n).
+#h #n #G #K #T1 #T2 * /3 width=11 by cpg_lifts_bi, ex2_intro/
+qed-.
+
+(* Inversion lemmas with generic slicing for local environments *************)
+
+lemma cpt_inv_lifts_sn (h) (n) (G):
+      d_deliftable2_sn … lifts (λL. cpt h G L n).
+#h #n #G #L #U1 #U2 * #c #Hc #HU12 #b #f #K #HLK #T1 #HTU1
+elim (cpg_inv_lifts_sn … HU12 … HLK … HTU1) -L -U1
+/3 width=5 by ex2_intro/
+qed-.
+
+lemma cpt_inv_lifts_bi (h) (n) (G):
+      d_deliftable2_bi … lifts (λL. cpt h G L n).
+#h #n #G #L #U1 #U2 * /3 width=11 by cpg_inv_lifts_bi, ex2_intro/
+qed-.
index 005c4335504d9dbf4d79f963c654bb888b4461db..f8978f460ca477121395de7024a3fe2bbbe42b48 100644 (file)
@@ -31,13 +31,13 @@ lemma cpx_ess: ∀h,G,L,s. ⦃G,L⦄ ⊢ ⋆s ⬈[h] ⋆(⫯[h]s).
 /2 width=2 by cpg_ess, ex_intro/ qed.
 
 lemma cpx_delta: ∀h,I,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ⬈[h] V2 →
-                 â¬\86*[1] V2 ≘ W2 → ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈[h] W2.
+                 â\87§*[1] V2 ≘ W2 → ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈[h] W2.
 #h * #G #K #V1 #V2 #W2 *
 /3 width=4 by cpg_delta, cpg_ell, ex_intro/
 qed.
 
 lemma cpx_lref: ∀h,I,G,K,T,U,i. ⦃G,K⦄ ⊢ #i ⬈[h] T →
-                â¬\86*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈[h] U.
+                â\87§*[1] T ≘ U → ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈[h] U.
 #h #I #G #K #T #U #i *
 /3 width=4 by cpg_lref, ex_intro/
 qed.
@@ -57,7 +57,7 @@ lemma cpx_flat: ∀h,I,G,L,V1,V2,T1,T2.
 qed.
 
 lemma cpx_zeta (h) (G) (L):
-               â\88\80T1,T. â¬\86*[1] T ≘ T1 → ∀T2. ⦃G,L⦄ ⊢ T ⬈[h] T2 →
+               â\88\80T1,T. â\87§*[1] T ≘ T1 → ∀T2. ⦃G,L⦄ ⊢ T ⬈[h] T2 →
                ∀V. ⦃G,L⦄ ⊢ +ⓓV.T1 ⬈[h] T2.
 #h #G #L #T1 #T #HT1 #T2 *
 /3 width=4 by cpg_zeta, ex_intro/
@@ -82,7 +82,7 @@ lemma cpx_beta: ∀h,p,G,L,V1,V2,W1,W2,T1,T2.
 qed.
 
 lemma cpx_theta: ∀h,p,G,L,V1,V,V2,W1,W2,T1,T2.
-                 â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â¬\86*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ⬈[h] W2 →
+                 â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V â\86\92 â\87§*[1] V ≘ V2 → ⦃G,L⦄ ⊢ W1 ⬈[h] W2 →
                  ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[h] T2 →
                  ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}W1.T1 ⬈[h] ⓓ{p}W2.ⓐV2.T2.
 #h #p #G #L #V1 #V #V2 #W1 #W2 #T1 #T2 * #cV #HV1 #HV2 * #cW #HW12 * 
@@ -111,9 +111,9 @@ qed.
 lemma cpx_inv_atom1: ∀h,J,G,L,T2. ⦃G,L⦄ ⊢ ⓪{J} ⬈[h] T2 →
                      ∨∨ T2 = ⓪{J}
                       | ∃∃s. T2 = ⋆(⫯[h]s) & J = Sort s
-                      | â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â\87§*[1] V2 ≘ T2 &
                                      L = K.ⓑ{I}V1 & J = LRef 0
-                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â¬\86*[1] T ≘ T2 &
+                      | â\88\83â\88\83I,K,T,i. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â\87§*[1] T ≘ T2 &
                                    L = K.ⓘ{I} & J = LRef (↑i).
 #h #J #G #L #T2 * #c #H elim (cpg_inv_atom1 … H) -H *
 /4 width=8 by or4_intro0, or4_intro1, or4_intro2, or4_intro3, ex4_4_intro, ex2_intro, ex_intro/
@@ -127,7 +127,7 @@ qed-.
 
 lemma cpx_inv_zero1: ∀h,G,L,T2. ⦃G,L⦄ ⊢ #0 ⬈[h] T2 →
                      ∨∨ T2 = #0
-                      | â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â¬\86*[1] V2 ≘ T2 &
+                      | â\88\83â\88\83I,K,V1,V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â\87§*[1] V2 ≘ T2 &
                                      L = K.ⓑ{I}V1.
 #h #G #L #T2 * #c #H elim (cpg_inv_zero1 … H) -H *
 /4 width=7 by ex3_4_intro, ex_intro, or_introl, or_intror/
@@ -135,7 +135,7 @@ qed-.
 
 lemma cpx_inv_lref1: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #↑i ⬈[h] T2 →
                      ∨∨ T2 = #(↑i)
-                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â¬\86*[1] T ≘ T2 & L = K.ⓘ{I}.
+                      | â\88\83â\88\83I,K,T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â\87§*[1] T ≘ T2 & L = K.ⓘ{I}.
 #h #G #L #T2 #i * #c #H elim (cpg_inv_lref1 … H) -H *
 /4 width=6 by ex3_3_intro, ex_intro, or_introl, or_intror/
 qed-.
@@ -147,7 +147,7 @@ qed-.
 lemma cpx_inv_bind1: ∀h,p,I,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓑ{p,I}V1.T1 ⬈[h] U2 →
                      ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V2 & ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ⬈[h] T2 &
                                  U2 = ⓑ{p,I}V2.T2
-                      | â\88\83â\88\83T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[h] U2 & 
+                      | â\88\83â\88\83T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[h] U2 & 
                              p = true & I = Abbr.
 #h #p #I #G #L #V1 #T1 #U2 * #c #H elim (cpg_inv_bind1 … H) -H *
 /4 width=5 by ex4_intro, ex3_2_intro, ex_intro, or_introl, or_intror/
@@ -156,7 +156,7 @@ qed-.
 lemma cpx_inv_abbr1: ∀h,p,G,L,V1,T1,U2. ⦃G,L⦄ ⊢ ⓓ{p}V1.T1 ⬈[h] U2 →
                      ∨∨ ∃∃V2,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V2 & ⦃G,L.ⓓV1⦄ ⊢ T1 ⬈[h] T2 &
                                  U2 = ⓓ{p}V2.T2
-                      | â\88\83â\88\83T. â¬\86*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[h] U2 & p = true.
+                      | â\88\83â\88\83T. â\87§*[1] T ≘ T1 & ⦃G,L⦄ ⊢ T ⬈[h] U2 & p = true.
 #h #p #G #L #V1 #T1 #U2 * #c #H elim (cpg_inv_abbr1 … H) -H *
 /4 width=5 by ex3_2_intro, ex3_intro, ex_intro, or_introl, or_intror/
 qed-.
@@ -174,7 +174,7 @@ lemma cpx_inv_appl1: ∀h,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓐ V1.U1 ⬈[h] U2 →
                       | ∃∃p,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V2 & ⦃G,L⦄ ⊢ W1 ⬈[h] W2 &
                                             ⦃G,L.ⓛW1⦄ ⊢ T1 ⬈[h] T2 &
                                             U1 = ⓛ{p}W1.T1 & U2 = ⓓ{p}ⓝW2.V2.T2
-                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V & â¬\86*[1] V ≘ V2 &
+                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V & â\87§*[1] V ≘ V2 &
                                               ⦃G,L⦄ ⊢ W1 ⬈[h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[h] T2 &
                                               U1 = ⓓ{p}W1.T1 & U2 = ⓓ{p}W2.ⓐV2.T2.
 #h #G #L #V1 #U1 #U2 * #c #H elim (cpg_inv_appl1 … H) -H *
@@ -194,14 +194,14 @@ qed-.
 
 lemma cpx_inv_zero1_pair: ∀h,I,G,K,V1,T2. ⦃G,K.ⓑ{I}V1⦄ ⊢ #0 ⬈[h] T2 →
                           ∨∨ T2 = #0
-                           | â\88\83â\88\83V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â¬\86*[1] V2 ≘ T2.
+                           | â\88\83â\88\83V2. â¦\83G,Kâ¦\84 â\8a¢ V1 â¬\88[h] V2 & â\87§*[1] V2 ≘ T2.
 #h #I #G #L #V1 #T2 * #c #H elim (cpg_inv_zero1_pair … H) -H *
 /4 width=3 by ex2_intro, ex_intro, or_intror, or_introl/
 qed-.
 
 lemma cpx_inv_lref1_bind: ∀h,I,G,K,T2,i. ⦃G,K.ⓘ{I}⦄ ⊢ #↑i ⬈[h] T2 →
                           ∨∨ T2 = #(↑i)
-                           | â\88\83â\88\83T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â¬\86*[1] T ≘ T2.
+                           | â\88\83â\88\83T. â¦\83G,Kâ¦\84 â\8a¢ #i â¬\88[h] T & â\87§*[1] T ≘ T2.
 #h #I #G #L #T2 #i * #c #H elim (cpg_inv_lref1_bind … H) -H *
 /4 width=3 by ex2_intro, ex_intro, or_introl, or_intror/
 qed-.
@@ -215,7 +215,7 @@ lemma cpx_inv_flat1: ∀h,I,G,L,V1,U1,U2. ⦃G,L⦄ ⊢ ⓕ{I}V1.U1 ⬈[h] U2 
                                             ⦃G,L.ⓛW1⦄ ⊢ T1 ⬈[h] T2 &
                                             U1 = ⓛ{p}W1.T1 &
                                             U2 = ⓓ{p}ⓝW2.V2.T2 & I = Appl
-                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V & â¬\86*[1] V ≘ V2 &
+                      | â\88\83â\88\83p,V,V2,W1,W2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\88[h] V & â\87§*[1] V ≘ V2 &
                                               ⦃G,L⦄ ⊢ W1 ⬈[h] W2 & ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[h] T2 &
                                               U1 = ⓓ{p}W1.T1 &
                                               U2 = ⓓ{p}W2.ⓐV2.T2 & I = Appl.
@@ -242,14 +242,14 @@ lemma cpx_ind: ∀h. ∀Q:relation4 genv lenv term term.
                (∀I,G,L. Q G L (⓪{I}) (⓪{I})) →
                (∀G,L,s. Q G L (⋆s) (⋆(⫯[h]s))) →
                (∀I,G,K,V1,V2,W2. ⦃G,K⦄ ⊢ V1 ⬈[h] V2 → Q G K V1 V2 →
-                 â¬\86*[1] V2 ≘ W2 → Q G (K.ⓑ{I}V1) (#0) W2
+                 â\87§*[1] V2 ≘ W2 → Q G (K.ⓑ{I}V1) (#0) W2
                ) → (∀I,G,K,T,U,i. ⦃G,K⦄ ⊢ #i ⬈[h] T → Q G K (#i) T →
-                 â¬\86*[1] T ≘ U → Q G (K.ⓘ{I}) (#↑i) (U)
+                 â\87§*[1] T ≘ U → Q G (K.ⓘ{I}) (#↑i) (U)
                ) → (∀p,I,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V2 → ⦃G,L.ⓑ{I}V1⦄ ⊢ T1 ⬈[h] T2 →
                   Q G L V1 V2 → Q G (L.ⓑ{I}V1) T1 T2 → Q G L (ⓑ{p,I}V1.T1) (ⓑ{p,I}V2.T2)
                ) → (∀I,G,L,V1,V2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V2 → ⦃G,L⦄ ⊢ T1 ⬈[h] T2 →
                   Q G L V1 V2 → Q G L T1 T2 → Q G L (ⓕ{I}V1.T1) (ⓕ{I}V2.T2)
-               ) â\86\92 (â\88\80G,L,V,T1,T,T2. â¬\86*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ⬈[h] T2 → Q G L T T2 →
+               ) â\86\92 (â\88\80G,L,V,T1,T,T2. â\87§*[1] T ≘ T1 → ⦃G,L⦄ ⊢ T ⬈[h] T2 → Q G L T T2 →
                   Q G L (+ⓓV.T1) T2
                ) → (∀G,L,V,T1,T2. ⦃G,L⦄ ⊢ T1 ⬈[h] T2 → Q G L T1 T2 →
                   Q G L (ⓝV.T1) T2
@@ -260,7 +260,7 @@ lemma cpx_ind: ∀h. ∀Q:relation4 genv lenv term term.
                   Q G L (ⓐV1.ⓛ{p}W1.T1) (ⓓ{p}ⓝW2.V2.T2)
                ) → (∀p,G,L,V1,V,V2,W1,W2,T1,T2. ⦃G,L⦄ ⊢ V1 ⬈[h] V → ⦃G,L⦄ ⊢ W1 ⬈[h] W2 → ⦃G,L.ⓓW1⦄ ⊢ T1 ⬈[h] T2 →
                   Q G L V1 V → Q G L W1 W2 → Q G (L.ⓓW1) T1 T2 →
-                  â¬\86*[1] V ≘ V2 → Q G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
+                  â\87§*[1] V ≘ V2 → Q G L (ⓐV1.ⓓ{p}W1.T1) (ⓓ{p}W2.ⓐV2.T2)
                ) →
                ∀G,L,T1,T2. ⦃G,L⦄ ⊢ T1 ⬈[h] T2 → Q G L T1 T2.
 #h #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #IH9 #IH10 #IH11 #G #L #T1 #T2
index 500929b1d35f82a6531189142ee6125c011a6698..eb52d53006b299ac10ca2eae1c893ed789136c66 100644 (file)
@@ -21,8 +21,8 @@ include "basic_2/rt_transition/cpx.ma".
 
 (* Basic_2A1: was: cpx_delta *)
 lemma cpx_delta_drops: ∀h,I,G,L,K,V,V2,W2,i.
-                       â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⬈[h] V2 →
-                       â¬\86*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬈[h] W2.
+                       â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⬈[h] V2 →
+                       â\87§*[↑i] V2 ≘ W2 → ⦃G,L⦄ ⊢ #i ⬈[h] W2.
 #h * #G #L #K #V #V2 #W2 #i #HLK *
 /3 width=7 by cpg_ell_drops, cpg_delta_drops, ex_intro/
 qed.
@@ -33,8 +33,8 @@ qed.
 lemma cpx_inv_atom1_drops: ∀h,I,G,L,T2. ⦃G,L⦄ ⊢ ⓪{I} ⬈[h] T2 →
                            ∨∨ T2 = ⓪{I}
                             | ∃∃s. T2 = ⋆(⫯[h]s) & I = Sort s
-                            | â\88\83â\88\83J,K,V,V2,i. â¬\87*[i] L ≘ K.ⓑ{J}V & ⦃G,K⦄ ⊢ V ⬈[h] V2 &
-                                            â¬\86*[↑i] V2 ≘ T2 & I = LRef i.
+                            | â\88\83â\88\83J,K,V,V2,i. â\87©*[i] L ≘ K.ⓑ{J}V & ⦃G,K⦄ ⊢ V ⬈[h] V2 &
+                                            â\87§*[↑i] V2 ≘ T2 & I = LRef i.
 #h #I #G #L #T2 * #c #H elim (cpg_inv_atom1_drops … H) -H *
 /4 width=9 by or3_intro0, or3_intro1, or3_intro2, ex4_5_intro, ex2_intro, ex_intro/
 qed-.
@@ -42,8 +42,8 @@ qed-.
 (* Basic_2A1: was: cpx_inv_lref1 *)
 lemma cpx_inv_lref1_drops: ∀h,G,L,T2,i. ⦃G,L⦄ ⊢ #i ⬈[h] T2 →
                            T2 = #i ∨
-                           â\88\83â\88\83J,K,V,V2. â¬\87*[i] L ≘ K. ⓑ{J}V & ⦃G,K⦄ ⊢ V ⬈[h] V2 &
-                                       â¬\86*[↑i] V2 ≘ T2.
+                           â\88\83â\88\83J,K,V,V2. â\87©*[i] L ≘ K. ⓑ{J}V & ⦃G,K⦄ ⊢ V ⬈[h] V2 &
+                                       â\87§*[↑i] V2 ≘ T2.
 #h #G #L #T1 #i * #c #H elim (cpg_inv_lref1_drops … H) -H *
 /4 width=7 by ex3_4_intro, ex_intro, or_introl, or_intror/
 qed-.
index 12d23e2175ec1b34f3b9575c51b43913d6419ca3..022810c735531780fbc0873e1386f3de854b6729 100644 (file)
@@ -20,8 +20,8 @@ include "basic_2/rt_transition/cpx_drops.ma".
 (* Properties with basic relocation *****************************************)
 
 lemma cpx_subst (h) (G) (L) (U1) (i):
-                â\88\80I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V →
-                â\88\83â\88\83U2,T2. â¦\83G,Lâ¦\84 â\8a¢ U1 â¬\88[h] U2 & â¬\86[i,1] T2 ≘ U2.
+                â\88\80I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V →
+                â\88\83â\88\83U2,T2. â¦\83G,Lâ¦\84 â\8a¢ U1 â¬\88[h] U2 & â\87§[i,1] T2 ≘ U2.
 #h #G #L #U1 @(fqup_wf_ind_eq (Ⓣ) … G L U1) -G -L -U1
 #G0 #L0 #U0 #IH #G #L * *
 [ #s #HG #HL #HT #i #I #K #V #_ destruct -IH
index 54d5d3bc86d565fd4fb6bd20beac0efcf0826636..184d914067d5f21154e10facc365fa84ac60fb48 100644 (file)
@@ -35,8 +35,8 @@ fact cpr_conf_lpr_atom_delta (h):
    ∀G0,L0,i. (
       ∀G,L,T. ⦃G0,L0,#i⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
-   â\88\80K0,V0. â¬\87*[i] L0 ≘ K0.ⓓV0 →
-   â\88\80V2. â¦\83G0,K0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80T2. â¬\86*[↑i] V2 ≘ T2 →
+   â\88\80K0,V0. â\87©*[i] L0 ≘ K0.ⓓV0 →
+   â\88\80V2. â¦\83G0,K0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80T2. â\87§*[↑i] V2 ≘ T2 →
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ #i ➡[h] T & ⦃G0,L2⦄ ⊢ T2 ➡[h] T.
 #h #G0 #L0 #i #IH #K0 #V0 #HLK0 #V2 #HV02 #T2 #HVT2 #L1 #HL01 #L2 #HL02
@@ -56,10 +56,10 @@ fact cpr_conf_lpr_delta_delta (h):
    ∀G0,L0,i. (
       ∀G,L,T. ⦃G0,L0,#i⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
-   â\88\80K0,V0. â¬\87*[i] L0 ≘ K0.ⓓV0 →
-   â\88\80V1. â¦\83G0,K0â¦\84 â\8a¢ V0 â\9e¡[h] V1 â\86\92 â\88\80T1. â¬\86*[↑i] V1 ≘ T1 →
-   â\88\80KX,VX. â¬\87*[i] L0 ≘ KX.ⓓVX →
-   â\88\80V2. â¦\83G0,KXâ¦\84 â\8a¢ VX â\9e¡[h] V2 â\86\92 â\88\80T2. â¬\86*[↑i] V2 ≘ T2 →
+   â\88\80K0,V0. â\87©*[i] L0 ≘ K0.ⓓV0 →
+   â\88\80V1. â¦\83G0,K0â¦\84 â\8a¢ V0 â\9e¡[h] V1 â\86\92 â\88\80T1. â\87§*[↑i] V1 ≘ T1 →
+   â\88\80KX,VX. â\87©*[i] L0 ≘ KX.ⓓVX →
+   â\88\80V2. â¦\83G0,KXâ¦\84 â\8a¢ VX â\9e¡[h] V2 â\86\92 â\88\80T2. â\87§*[↑i] V2 ≘ T2 →
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ T1 ➡[h] T & ⦃G0,L2⦄ ⊢ T2 ➡[h] T.
 #h #G0 #L0 #i #IH #K0 #V0 #HLK0 #V1 #HV01 #T1 #HVT1
@@ -97,7 +97,7 @@ fact cpr_conf_lpr_bind_zeta (h):
       ∀G,L,T. ⦃G0,L0,+ⓓV0.T0⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
    ∀V1. ⦃G0,L0⦄ ⊢ V0 ➡[h] V1 → ∀T1. ⦃G0,L0.ⓓV0⦄ ⊢ T0 ➡[h] T1 →
-   â\88\80T2. â¬\86*[1]T2 ≘ T0 → ∀X2. ⦃G0,L0⦄ ⊢ T2 ➡[h] X2 →  
+   â\88\80T2. â\87§*[1]T2 ≘ T0 → ∀X2. ⦃G0,L0⦄ ⊢ T2 ➡[h] X2 →  
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ +ⓓV1.T1 ➡[h] T & ⦃G0,L2⦄ ⊢ X2 ➡[h] T.
 #h #G0 #L0 #V0 #T0 #IH #V1 #HV01 #T1 #HT01
@@ -111,8 +111,8 @@ fact cpr_conf_lpr_zeta_zeta (h):
    ∀G0,L0,V0,T0. (
       ∀G,L,T. ⦃G0,L0,+ⓓV0.T0⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
-   â\88\80T1. â¬\86*[1] T1 ≘ T0 → ∀X1. ⦃G0,L0⦄ ⊢ T1 ➡[h] X1 →
-   â\88\80T2. â¬\86*[1] T2 ≘ T0 → ∀X2. ⦃G0,L0⦄ ⊢ T2 ➡[h] X2 →
+   â\88\80T1. â\87§*[1] T1 ≘ T0 → ∀X1. ⦃G0,L0⦄ ⊢ T1 ➡[h] X1 →
+   â\88\80T2. â\87§*[1] T2 ≘ T0 → ∀X2. ⦃G0,L0⦄ ⊢ T2 ➡[h] X2 →
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ X1 ➡[h] T & ⦃G0,L2⦄ ⊢ X2 ➡[h] T.
 #h #G0 #L0 #V0 #T0 #IH #T1 #HT10 #X1 #HTX1
@@ -190,7 +190,7 @@ fact cpr_conf_lpr_flat_theta (h):
       ∀G,L,T. ⦃G0,L0,ⓐV0.ⓓ{p}W0.T0⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
    ∀V1. ⦃G0,L0⦄ ⊢ V0 ➡[h] V1 → ∀T1. ⦃G0,L0⦄ ⊢ ⓓ{p}W0.T0 ➡[h] T1 →
-   â\88\80V2. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80U2. â¬\86*[1] V2 ≘ U2 →
+   â\88\80V2. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80U2. â\87§*[1] V2 ≘ U2 →
    ∀W2. ⦃G0,L0⦄ ⊢ W0 ➡[h] W2 → ∀T2. ⦃G0,L0.ⓓW0⦄ ⊢ T0 ➡[h] T2 →
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ ⓐV1.T1 ➡[h] T & ⦃G0,L2⦄ ⊢ ⓓ{p}W2.ⓐU2.T2 ➡[h] T.
@@ -233,9 +233,9 @@ fact cpr_conf_lpr_theta_theta (h):
    ∀p,G0,L0,V0,W0,T0. (
       ∀G,L,T. ⦃G0,L0,ⓐV0.ⓓ{p}W0.T0⦄ ⬂+ ⦃G,L,T⦄ → IH_cpr_conf_lpr h G L T
    ) →
-   â\88\80V1. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V1 â\86\92 â\88\80U1. â¬\86*[1] V1 ≘ U1 →
+   â\88\80V1. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V1 â\86\92 â\88\80U1. â\87§*[1] V1 ≘ U1 →
    ∀W1. ⦃G0,L0⦄ ⊢ W0 ➡[h] W1 → ∀T1. ⦃G0,L0.ⓓW0⦄ ⊢ T0 ➡[h] T1 →
-   â\88\80V2. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80U2. â¬\86*[1] V2 ≘ U2 →
+   â\88\80V2. â¦\83G0,L0â¦\84 â\8a¢ V0 â\9e¡[h] V2 â\86\92 â\88\80U2. â\87§*[1] V2 ≘ U2 →
    ∀W2. ⦃G0,L0⦄ ⊢ W0 ➡[h] W2 → ∀T2. ⦃G0,L0.ⓓW0⦄ ⊢ T0 ➡[h] T2 →
    ∀L1. ⦃G0,L0⦄ ⊢ ➡[h] L1 → ∀L2. ⦃G0,L0⦄ ⊢ ➡[h] L2 →
    ∃∃T. ⦃G0,L1⦄ ⊢ ⓓ{p}W1.ⓐU1.T1 ➡[h] T & ⦃G0,L2⦄ ⊢ ⓓ{p}W2.ⓐU2.T2 ➡[h] T.
index ea4d621145b37619153dbd87489c1078b78798e1..eaf81190d77217ce6bc0422952c171a73de348b1 100644 (file)
@@ -33,6 +33,6 @@ lemma rpx_inv_lifts_dx (h) (G): f_dropable_dx (cpx h G).
 
 lemma rpx_inv_lifts_bi (h) (G):
                        ∀L1,L2,U. ⦃G,L1⦄ ⊢ ⬈[h,U] L2 → ∀b,f. 𝐔⦃f⦄ →
-                       â\88\80K1,K2. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                       â\88\80T. â¬\86*[f]T ≘ U → ⦃G,K1⦄ ⊢ ⬈[h,T] K2.
+                       â\88\80K1,K2. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                       â\88\80T. â\87§*[f]T ≘ U → ⦃G,K1⦄ ⊢ ⬈[h,T] K2.
 /2 width=10 by rex_inv_lifts_bi/ qed-.
index b610f09586a981a271454aaa4ecd7fbebecc2f85..4f811399e0f50ae5e53bb67c70db2a02316a603e 100644 (file)
@@ -23,7 +23,7 @@ include "basic_2/rt_transition/rpx_fqup.ma".
 (* Forward lemmas with free variables inclusion for restricted closures *****)
 
 (* Note: "⦃L2, T1⦄ ⊆ ⦃L2, T0⦄" does not hold *)
-(* Note: Take L0 = K0.â\93\93\93\9dW.V), L2 = K0.â\93\93W, T0 = #0, T1 = â¬\86*[1]V *)
+(* Note: Take L0 = K0.â\93\93\93\9dW.V), L2 = K0.â\93\93W, T0 = #0, T1 = â\87§*[1]V *)
 (* Note: This invalidates rpxs_cpx_conf: "∀h, G. s_r_confluent1 … (cpx h G) (rpxs h G)" *)
 lemma rpx_cpx_conf_fsge (h) (G): ∀L0,T0,T1. ⦃G,L0⦄ ⊢ T0 ⬈[h] T1 →
                                  ∀L2. ⦃G,L0⦄ ⊢⬈[h,T0] L2 → ⦃L2,T1⦄ ⊆ ⦃L0,T0⦄.
index 4176396a0b38f03f87019622dedc351336d00146..671bd5bae107585d622753748574e863910733bf 100644 (file)
@@ -12,7 +12,7 @@ table {
    class "wine"
    [ { "iterated dynamic typing" * } {
         [ { "context-sensitive iterated native type assignment" * } {
-             [ [ "for terms" ] "ntas" + "( ⦃?,?⦄ ⊢ ? :*[?,?,?] ? )" "ntas_nta" + "ntas_preserve" * ]
+             [ [ "for terms" ] "ntas" + "( ⦃?,?⦄ ⊢ ? :*[?,?,?] ? )" "ntas_cpcs" + "ntas_nta" + "ntas_nta_ind" + " ntas_ntas" + "ntas_preserve" * ]
           }
         ]
      }
@@ -92,6 +92,10 @@ table {
    ]
    class "cyan"
    [ { "rt-transition" * } {
+        [ { "context-sensitive parallel t-transition" * } {
+             [ [ "for terms" ] "cpt" + "( ⦃?,?⦄ ⊢ ? ⬆[?,?] ? )" "cpt_drops" + "cpt_cpm" * ]
+          }
+        ]
         [ { "context-sensitive parallel r-transition" * } {
              [ [ "normal form for terms" ] "cnr ( ⦃?,?⦄ ⊢ ➡[?] 𝐍⦃?⦄ )" "cnr_simple" + "cnr_tdeq" + "cnr_drops" * ]
              [ [ "for lenvs on all entries" ] "lpr" + "( ⦃?,?⦄ ⊢ ➡[?] ? )" "lpr_length" + "lpr_drops" + "lpr_fquq" + "lpr_aaa" + "lpr_lpx" + "lpr_lpr" * ]
@@ -192,7 +196,7 @@ class "italic"            { 2 }
           }
         ]
         [ { "global env. slicing" * } {
-             [ [ "" ] "gget ( â¬\87[?] ? ≘ ? )" "gget_gget" * ]
+             [ [ "" ] "gget ( â\87©[?] ? ≘ ? )" "gget_gget" * ]
           }
         ]
         [ { "context-sensitive ordinary rt-substitution" * } {
index 6ce878b44bf0d73d1ba13dfd8e23a19cf008441e..36fa26303e8e9ca167a44c4db2565c10027ec170 100644 (file)
@@ -51,7 +51,10 @@ qed.
 
 (* Equalities ***************************************************************)
 
-lemma plus_SO: ∀n. n + 1 = ↑n.
+lemma plus_SO_sn (n): 1 + n = ↑n.
+// qed-.
+
+lemma plus_SO_dx (n): n + 1 = ↑n.
 // qed.
 
 lemma minus_plus_m_m_commutative: ∀n,m:nat. n = m + n - m.
diff --git a/matita/matita/contribs/lambdadelta/ground_2/notation/relations/istype_2.ma b/matita/matita/contribs/lambdadelta/ground_2/notation/relations/istype_2.ma
new file mode 100644 (file)
index 0000000..795d811
--- /dev/null
@@ -0,0 +1,19 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* GENERAL NOTATION USED BY THE FORMAL SYSTEM λδ ****************************)
+
+notation "hvbox( 𝐓⦃ term 46 n, break term 46 c ⦄ )"
+   non associative with precedence 45
+   for @{ 'IsType $n $c }.
diff --git a/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist.ma b/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist.ma
new file mode 100644 (file)
index 0000000..6b9b646
--- /dev/null
@@ -0,0 +1,52 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "ground_2/notation/relations/istype_2.ma".
+include "ground_2/steps/rtc.ma".
+
+(* T-TRANSITION COUNTER *****************************************************)
+
+definition ist: relation2 nat rtc ≝
+           λts,c. 〈0,0,0,ts〉 = c.
+
+interpretation "test for t-transition counter (rtc)"
+   'IsType ts c = (ist ts c).
+
+(* Basic properties *********************************************************)
+
+lemma isr_00: 𝐓⦃0,𝟘𝟘⦄.
+// qed.
+
+lemma ist_01: 𝐓⦃1,𝟘𝟙⦄.
+// qed.
+
+(* Basic inversion properties ***********************************************)
+
+lemma ist_inv_00: ∀n. 𝐓⦃n,𝟘𝟘⦄ → 0 = n.
+#n #H destruct //
+qed-.
+
+lemma ist_inv_01: ∀n. 𝐓⦃n,𝟘𝟙⦄ → 1 = n.
+#n #H destruct //
+qed-.
+
+(* Main inversion properties ************************************************)
+
+theorem ist_inj: ∀n1,n2,c. 𝐓⦃n1,c⦄ → 𝐓⦃n2,c⦄ → n1 = n2.
+#n1 #n2 #c #H1 #H2 destruct //
+qed-.
+
+theorem ist_mono: ∀n,c1,c2. 𝐓⦃n,c1⦄ → 𝐓⦃n,c2⦄ → c1 = c2.
+#n #c1 #c2 #H1 #H2 destruct //
+qed-.
diff --git a/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_max.ma b/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_max.ma
new file mode 100644 (file)
index 0000000..ba31b7f
--- /dev/null
@@ -0,0 +1,60 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "ground_2/steps/rtc_max.ma".
+include "ground_2/steps/rtc_ist.ma".
+
+(* RT-TRANSITION COUNTER ****************************************************)
+
+(* Properties with test for t-transition counter ****************************)
+
+lemma ist_max: ∀n1,n2,c1,c2. 𝐓⦃n1,c1⦄ → 𝐓⦃n2,c2⦄ → 𝐓⦃n1∨n2,c1∨c2⦄.
+#n1 #n2 #c1 #c2 #H1 #H2 destruct //
+qed.
+
+lemma ist_max_O1: ∀n,c1,c2. 𝐓⦃0,c1⦄ → 𝐓⦃n,c2⦄ → 𝐓⦃n,c1∨c2⦄.
+/2 width=1 by ist_max/ qed.
+
+lemma ist_max_O2: ∀n,c1,c2. 𝐓⦃n,c1⦄ → 𝐓⦃0,c2⦄ → 𝐓⦃n,c1∨c2⦄.
+#n #c1 #c2 #H1 #H2 >(max_O2 n) /2 width=1 by ist_max/
+qed.
+
+lemma ist_max_idem1: ∀n,c1,c2. 𝐓⦃n,c1⦄ → 𝐓⦃n,c2⦄ → 𝐓⦃n,c1∨c2⦄.
+#n #c1 #c2 #H1 #H2 >(idempotent_max n) /2 width=1 by ist_max/
+qed.
+
+(* Inversion properties with test for t-transition counter ******************)
+
+lemma ist_inv_max:
+      ∀n,c1,c2. 𝐓⦃n,c1 ∨ c2⦄ →
+      ∃∃n1,n2. 𝐓⦃n1,c1⦄ & 𝐓⦃n2,c2⦄ & (n1 ∨ n2) = n.
+#n #c1 #c2 #H
+elim (max_inv_dx … H) -H #ri1 #rs1 #ti1 #ts1 #ri2 #rs2 #ti2 #ts2 #H1 #H2 #H3 #H4 #H5 #H6 destruct
+elim (max_inv_O3 … H1) -H1 #H11 #H12 destruct
+elim (max_inv_O3 … H2) -H2 #H21 #H22 destruct
+elim (max_inv_O3 … H3) -H3 #H31 #H32 destruct
+/2 width=5 by ex3_2_intro/
+qed-.
+
+lemma ist_O_inv_max: ∀c1,c2. 𝐓⦃0,c1 ∨ c2⦄ → ∧∧ 𝐓⦃0,c1⦄ & 𝐓⦃0,c2⦄.
+#c1 #c2 #H
+elim (ist_inv_max … H) -H #n1 #n2 #Hn1 #Hn2 #H
+elim (max_inv_O3 … H) -H #H1 #H2 destruct
+/2 width=1 by conj/
+qed-.
+
+lemma ist_inv_max_O_dx: ∀n,c1,c2. 𝐓⦃n,c1 ∨ c2⦄ → 𝐓⦃0,c2⦄ → 𝐓⦃n,c1⦄.
+#n #c1 #c2 #H #H2
+elim (ist_inv_max … H) -H #n1 #n2 #Hn1 #Hn2 #H destruct //
+qed-.
diff --git a/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_plus.ma b/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_plus.ma
new file mode 100644 (file)
index 0000000..c17eec5
--- /dev/null
@@ -0,0 +1,60 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "ground_2/steps/rtc_plus.ma".
+include "ground_2/steps/rtc_ist.ma".
+
+(* RT-TRANSITION COUNTER ****************************************************)
+
+(* Properties with test for t-transition counter ****************************)
+
+lemma ist_plus: ∀n1,n2,c1,c2. 𝐓⦃n1,c1⦄ → 𝐓⦃n2,c2⦄ → 𝐓⦃n1+n2,c1+c2⦄.
+#n1 #n2 #c1 #c2 #H1 #H2 destruct //
+qed.
+
+lemma ist_plus_O1: ∀n,c1,c2. 𝐓⦃0,c1⦄ → 𝐓⦃n,c2⦄ → 𝐓⦃n,c1+c2⦄.
+/2 width=1 by ist_plus/ qed.
+
+lemma ist_plus_O2: ∀n,c1,c2. 𝐓⦃n,c1⦄ → 𝐓⦃0,c2⦄ → 𝐓⦃n,c1+c2⦄.
+#n #c1 #c2 #H1 #H2 >(plus_n_O n) /2 width=1 by ist_plus/
+qed.
+
+lemma ist_succ: ∀n,c. 𝐓⦃n,c⦄ → 𝐓⦃↑n,c+𝟘𝟙⦄.
+/2 width=1 by ist_plus/ qed.
+
+(* Inversion properties with test for constrained rt-transition counter *****)
+
+lemma ist_inv_plus:
+      ∀n,c1,c2. 𝐓⦃n,c1 + c2⦄ →
+      ∃∃n1,n2. 𝐓⦃n1,c1⦄ & 𝐓⦃n2,c2⦄ & n1 + n2 = n.
+#n #c1 #c2 #H
+elim (plus_inv_dx … H) -H #ri1 #rs1 #ti1 #ts1 #ri2 #rs2 #ti2 #ts2 #H1 #H2 #H3 #H4 #H5 #H6 destruct
+elim (plus_inv_O3 … H1) -H1 #H11 #H12 destruct
+elim (plus_inv_O3 … H2) -H2 #H21 #H22 destruct
+elim (plus_inv_O3 … H3) -H3 #H31 #H32 destruct
+/3 width=5 by ex3_2_intro/
+qed-.
+
+lemma ist_inv_plus_O_dx: ∀n,c1,c2. 𝐓⦃n,c1 + c2⦄ → 𝐓⦃0,c2⦄ → 𝐓⦃n,c1⦄.
+#n #c1 #c2 #H #H2
+elim (ist_inv_plus … H) -H #n1 #n2 #Hn1 #Hn2 #H destruct //
+qed-.
+
+lemma ist_inv_plus_SO_dx:
+      ∀n,c1,c2. 𝐓⦃n,c1 + c2⦄ → 𝐓⦃1,c2⦄ →
+      ∃∃m. 𝐓⦃m,c1⦄ & n = ↑m.
+#n #c1 #c2 #H #H2 destruct
+elim (ist_inv_plus … H) -H #n1 #n2 #Hn1 #Hn2 #H destruct
+/2 width=3 by ex2_intro/
+qed-.
diff --git a/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_shift.ma b/matita/matita/contribs/lambdadelta/ground_2/steps/rtc_ist_shift.ma
new file mode 100644 (file)
index 0000000..99ad5a0
--- /dev/null
@@ -0,0 +1,38 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "ground_2/steps/rtc_shift.ma".
+include "ground_2/steps/rtc_ist.ma".
+
+(* RT-TRANSITION COUNTER ****************************************************)
+
+(* Properties with test for t-transition counter ****************************)
+
+lemma ist_zero_shift: ∀c. 𝐓⦃0,c⦄ → 𝐓⦃0,↕*c⦄.
+#c #H destruct //
+qed.
+
+(* Inversion properties with test for t-transition counter ******************)
+
+lemma ist_inv_shift: ∀n,c. 𝐓⦃n,↕*c⦄ → ∧∧ 𝐓⦃0,c⦄ & 0 = n.
+#n #c #H
+elim (shift_inv_dx … H) -H #rt0 #rs0 #ti0 #ts0 #H1 #_ #H2 #H3 #H4 destruct
+elim (max_inv_O3 … H1) -H1 #H11 #H12 destruct
+elim (max_inv_O3 … H2) -H2 #H21 #H22 destruct
+/2 width=1 by conj/
+qed-.
+
+lemma ist_inv_zero_shift: ∀c. 𝐓⦃0,↕*c⦄ → 𝐓⦃0,c⦄.
+#c #H elim (ist_inv_shift … H) -H //
+qed-.
index bf328791298d24d94054d63d9821802883b3bc1c..474eb277820cfa2fefb47a77aeb874905a9f626b 100644 (file)
@@ -12,7 +12,8 @@ table {
    class "water"
    [ { "generic rt-transition counter" * } {
         [ { "" * } {
-             [ "rtc ( 〈?,?,?,?〉 ) ( 𝟘𝟘 ) ( 𝟙𝟘 ) ( 𝟘𝟙 )" "rtc_isrc ( 𝐑𝐓⦃?, ?⦄ )" "rtc_shift ( ↕*? )" "rtc_max ( ? ∨ ? )" "rtc_plus ( ? + ? )" * ]
+             [ "rtc_ist ( 𝐓⦃?,?⦄ )" "rtc_ist_shift" "rtc_ist_plus" "rtc_ist_max" * ]  
+             [ "rtc ( 〈?,?,?,?〉 ) ( 𝟘𝟘 ) ( 𝟙𝟘 ) ( 𝟘𝟙 )" "rtc_isrc ( 𝐑𝐓⦃?,?⦄ )" "rtc_shift ( ↕*? )" "rtc_max ( ? ∨ ? )" "rtc_plus ( ? + ? )" * ]
           }
         ]
      }
index 11025a4a19dccfeb741a85eb11892a1eb219adfa..e146211fd9826b4c1a5e5730284f5659ce577db2 100644 (file)
@@ -19,19 +19,19 @@ include "static_2/i_static/rexs.ma".
 (* ITERATED EXTENSION ON REFERRED ENTRIES OF A CONTEXT-SENSITIVE REALTION ***)
 
 definition tc_f_dedropable_sn: predicate (relation3 lenv term term) ≝
-                               Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 →
-                               â\88\80K2,T. K1 âª¤*[R,T] K2 â\86\92 â\88\80U. â¬\86*[f] T ≘ U →
-                               â\88\83â\88\83L2. L1 âª¤*[R,U] L2 & â¬\87*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
+                               Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 →
+                               â\88\80K2,T. K1 âª¤*[R,T] K2 â\86\92 â\88\80U. â\87§*[f] T ≘ U →
+                               â\88\83â\88\83L2. L1 âª¤*[R,U] L2 & â\87©*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
 
 definition tc_f_dropable_sn: predicate (relation3 lenv term term) ≝
-                             Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
-                             â\88\80L2,U. L1 âª¤*[R,U] L2 â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
-                             â\88\83â\88\83K2. K1 âª¤*[R,T] K2 & â¬\87*[b,f] L2 ≘ K2.
+                             Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
+                             â\88\80L2,U. L1 âª¤*[R,U] L2 â\86\92 â\88\80T. â\87§*[f] T ≘ U →
+                             â\88\83â\88\83K2. K1 âª¤*[R,T] K2 & â\87©*[b,f] L2 ≘ K2.
 
 definition tc_f_dropable_dx: predicate (relation3 lenv term term) ≝
                              λR. ∀L1,L2,U. L1 ⪤*[R,U] L2 →
-                             â\88\80b,f,K2. â¬\87*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
-                             â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & K1 ⪤*[R,T] K2.
+                             â\88\80b,f,K2. â\87©*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80T. â\87§*[f] T ≘ U →
+                             â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & K1 ⪤*[R,T] K2.
 
 (* Properties with generic slicing for local environments *******************)
 
index 0e0a3273de0b7d4772856e60fac725161e1c74bb..9135f3760f1166a01e01c87c74e185841a2d3b09 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¬\87 * [ term 46 i ] break term 46 L1 ≘ break term 46 L2 )"
+notation "hvbox( â\87© * [ term 46 i ] break term 46 L1 ≘ break term 46 L2 )"
    non associative with precedence 45
    for @{ 'RDropStar $i $L1 $L2 }.
index ce4ce12b98c73babf0b43edbb884f35e8e4922bc..5cb9c3bf8865a51d20f985daae8263d9ba4ed1db 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¬\87 * [ term 46 b, break term 46 f ] break term 46 L1 ≘ break term 46 L2 )"
+notation "hvbox( â\87© * [ term 46 b, break term 46 f ] break term 46 L1 ≘ break term 46 L2 )"
    non associative with precedence 45
    for @{ 'RDropStar $b $f $L1 $L2 }.
index fb0fc24a749667f814a93dd5874735b1714b40a4..f3bf32e3445113454474e8d2ebc944018af80661 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¬\86[ term 46 m, break term 46 n ] break term 46 T1 ≘ break term 46 T2 )"
+notation "hvbox( â\87§[ term 46 m, break term 46 n ] break term 46 T1 ≘ break term 46 T2 )"
    non associative with precedence 45
    for @{ 'RLift $m $n $T1 $T2 }.
index 26d0262de5568aa999d186c2fb0508837e936c94..109f973edc79b7fd7760c1ea76bd871f8f839326 100644 (file)
@@ -14,6 +14,6 @@
 
 (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************)
 
-notation "hvbox( â¬\86 * [ term 46 f ] break term 46 T1 ≘ break term 46 T2 )"
+notation "hvbox( â\87§ * [ term 46 f ] break term 46 T1 ≘ break term 46 T2 )"
    non associative with precedence 45
    for @{ 'RLiftStar $f $T1 $T2 }.
index dc4d6d75c211308ca41ef18f3b6577532a00c1aa..801bbd059e62637b29cba6bef2d579d7950398d1 100644 (file)
@@ -28,7 +28,7 @@ inductive drops (b:bool): rtmap → relation lenv ≝
 | drops_atom: ∀f. (b = Ⓣ → 𝐈⦃f⦄) → drops b (f) (⋆) (⋆)
 | drops_drop: ∀f,I,L1,L2. drops b f L1 L2 → drops b (↑f) (L1.ⓘ{I}) L2
 | drops_skip: ∀f,I1,I2,L1,L2.
-              drops b f L1 L2 â\86\92 â¬\86*[f] I2 ≘ I1 →
+              drops b f L1 L2 â\86\92 â\87§*[f] I2 ≘ I1 →
               drops b (⫯f) (L1.ⓘ{I1}) (L2.ⓘ{I2})
 .
 
@@ -39,68 +39,68 @@ interpretation "generic slicing (local environment)"
    'RDropStar b f L1 L2 = (drops b f L1 L2).
 
 definition d_liftable1: predicate (relation2 lenv term) ≝
-                        Î»R. â\88\80K,T. R K T â\86\92 â\88\80b,f,L. â¬\87*[b,f] L ≘ K →
-                        â\88\80U. â¬\86*[f] T ≘ U → R L U.
+                        Î»R. â\88\80K,T. R K T â\86\92 â\88\80b,f,L. â\87©*[b,f] L ≘ K →
+                        â\88\80U. â\87§*[f] T ≘ U → R L U.
 
 definition d_liftable1_isuni: predicate (relation2 lenv term) ≝
-                              Î»R. â\88\80K,T. R K T â\86\92 â\88\80b,f,L. â¬\87*[b,f] L ≘ K → 𝐔⦃f⦄ →
-                              â\88\80U. â¬\86*[f] T ≘ U → R L U.
+                              Î»R. â\88\80K,T. R K T â\86\92 â\88\80b,f,L. â\87©*[b,f] L ≘ K → 𝐔⦃f⦄ →
+                              â\88\80U. â\87§*[f] T ≘ U → R L U.
 
 definition d_deliftable1: predicate (relation2 lenv term) ≝
-                          Î»R. â\88\80L,U. R L U â\86\92 â\88\80b,f,K. â¬\87*[b,f] L ≘ K →
-                          â\88\80T. â¬\86*[f] T ≘ U → R K T.
+                          Î»R. â\88\80L,U. R L U â\86\92 â\88\80b,f,K. â\87©*[b,f] L ≘ K →
+                          â\88\80T. â\87§*[f] T ≘ U → R K T.
 
 definition d_deliftable1_isuni: predicate (relation2 lenv term) ≝
-                                Î»R. â\88\80L,U. R L U â\86\92 â\88\80b,f,K. â¬\87*[b,f] L ≘ K → 𝐔⦃f⦄ →
-                                â\88\80T. â¬\86*[f] T ≘ U → R K T.
+                                Î»R. â\88\80L,U. R L U â\86\92 â\88\80b,f,K. â\87©*[b,f] L ≘ K → 𝐔⦃f⦄ →
+                                â\88\80T. â\87§*[f] T ≘ U → R K T.
 
 definition d_liftable2_sn: ∀C:Type[0]. ∀S:rtmap → relation C.
                            predicate (lenv → relation C) ≝
-                           Î»C,S,R. â\88\80K,T1,T2. R K T1 T2 â\86\92 â\88\80b,f,L. â¬\87*[b,f] L ≘ K →
+                           Î»C,S,R. â\88\80K,T1,T2. R K T1 T2 â\86\92 â\88\80b,f,L. â\87©*[b,f] L ≘ K →
                            ∀U1. S f T1 U1 →
                            ∃∃U2. S f T2 U2 & R L U1 U2.
 
 definition d_deliftable2_sn: ∀C:Type[0]. ∀S:rtmap → relation C.
                              predicate (lenv → relation C) ≝
-                             Î»C,S,R. â\88\80L,U1,U2. R L U1 U2 â\86\92 â\88\80b,f,K. â¬\87*[b,f] L ≘ K →
+                             Î»C,S,R. â\88\80L,U1,U2. R L U1 U2 â\86\92 â\88\80b,f,K. â\87©*[b,f] L ≘ K →
                              ∀T1. S f T1 U1 →
                              ∃∃T2. S f T2 U2 & R K T1 T2.
 
 definition d_liftable2_bi: ∀C:Type[0]. ∀S:rtmap → relation C.
                            predicate (lenv → relation C) ≝
-                           Î»C,S,R. â\88\80K,T1,T2. R K T1 T2 â\86\92 â\88\80b,f,L. â¬\87*[b,f] L ≘ K →
+                           Î»C,S,R. â\88\80K,T1,T2. R K T1 T2 â\86\92 â\88\80b,f,L. â\87©*[b,f] L ≘ K →
                            ∀U1. S f T1 U1 →
                            ∀U2. S f T2 U2 → R L U1 U2.
 
 definition d_deliftable2_bi: ∀C:Type[0]. ∀S:rtmap → relation C.
                              predicate (lenv → relation C) ≝
-                             Î»C,S,R. â\88\80L,U1,U2. R L U1 U2 â\86\92 â\88\80b,f,K. â¬\87*[b,f] L ≘ K →
+                             Î»C,S,R. â\88\80L,U1,U2. R L U1 U2 â\86\92 â\88\80b,f,K. â\87©*[b,f] L ≘ K →
                              ∀T1. S f T1 U1 →
                              ∀T2. S f T2 U2 → R K T1 T2.
 
 definition co_dropable_sn: predicate (rtmap → relation lenv) ≝
-                           Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
+                           Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
                            ∀f2,L2. R f2 L1 L2 → ∀f1. f ~⊚ f1 ≘ f2 →
-                           â\88\83â\88\83K2. R f1 K1 K2 & â¬\87*[b,f] L2 ≘ K2.
+                           â\88\83â\88\83K2. R f1 K1 K2 & â\87©*[b,f] L2 ≘ K2.
 
 definition co_dropable_dx: predicate (rtmap → relation lenv) ≝
                            λR. ∀f2,L1,L2. R f2 L1 L2 →
-                           â\88\80b,f,K2. â¬\87*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
+                           â\88\80b,f,K2. â\87©*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
                            ∀f1. f ~⊚ f1 ≘ f2 → 
-                           â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & R f1 K1 K2.
+                           â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & R f1 K1 K2.
 
 definition co_dedropable_sn: predicate (rtmap → relation lenv) ≝
-                             Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → ∀f1,K2. R f1 K1 K2 →
+                             Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → ∀f1,K2. R f1 K1 K2 →
                              ∀f2. f ~⊚ f1 ≘ f2 →
-                             â\88\83â\88\83L2. R f2 L1 L2 & â¬\87*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
+                             â\88\83â\88\83L2. R f2 L1 L2 & â\87©*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
 
 (* Basic properties *********************************************************)
 
-lemma drops_atom_F: â\88\80f. â¬\87*[Ⓕ,f] ⋆ ≘ ⋆.
+lemma drops_atom_F: â\88\80f. â\87©*[Ⓕ,f] ⋆ ≘ ⋆.
 #f @drops_atom #H destruct
 qed.
 
-lemma drops_eq_repl_back: â\88\80b,L1,L2. eq_repl_back â\80¦ (λf. â¬\87*[b,f] L1 ≘ L2).
+lemma drops_eq_repl_back: â\88\80b,L1,L2. eq_repl_back â\80¦ (λf. â\87©*[b,f] L1 ≘ L2).
 #b #L1 #L2 #f1 #H elim H -f1 -L1 -L2
 [ /4 width=3 by drops_atom, isid_eq_repl_back/
 | #f1 #I #L1 #L2 #_ #IH #f2 #H elim (eq_inv_nx … H) -H
@@ -110,23 +110,23 @@ lemma drops_eq_repl_back: ∀b,L1,L2. eq_repl_back … (λf. ⬇*[b,f] L1 ≘ L2
 ]
 qed-.
 
-lemma drops_eq_repl_fwd: â\88\80b,L1,L2. eq_repl_fwd â\80¦ (λf. â¬\87*[b,f] L1 ≘ L2).
+lemma drops_eq_repl_fwd: â\88\80b,L1,L2. eq_repl_fwd â\80¦ (λf. â\87©*[b,f] L1 ≘ L2).
 #b #L1 #L2 @eq_repl_sym /2 width=3 by drops_eq_repl_back/ (**) (* full auto fails *)
 qed-.
 
 (* Basic_2A1: includes: drop_FT *)
-lemma drops_TF: â\88\80f,L1,L2. â¬\87*[â\93\89,f] L1 â\89\98 L2 â\86\92 â¬\87*[Ⓕ,f] L1 ≘ L2.
+lemma drops_TF: â\88\80f,L1,L2. â\87©*[â\93\89,f] L1 â\89\98 L2 â\86\92 â\87©*[Ⓕ,f] L1 ≘ L2.
 #f #L1 #L2 #H elim H -f -L1 -L2
 /3 width=1 by drops_atom, drops_drop, drops_skip/
 qed.
 
 (* Basic_2A1: includes: drop_gen *)
-lemma drops_gen: â\88\80b,f,L1,L2. â¬\87*[â\93\89,f] L1 â\89\98 L2 â\86\92 â¬\87*[b,f] L1 ≘ L2.
+lemma drops_gen: â\88\80b,f,L1,L2. â\87©*[â\93\89,f] L1 â\89\98 L2 â\86\92 â\87©*[b,f] L1 ≘ L2.
 * /2 width=1 by drops_TF/
 qed-.
 
 (* Basic_2A1: includes: drop_T *)
-lemma drops_F: â\88\80b,f,L1,L2. â¬\87*[b,f] L1 â\89\98 L2 â\86\92 â¬\87*[Ⓕ,f] L1 ≘ L2.
+lemma drops_F: â\88\80b,f,L1,L2. â\87©*[b,f] L1 â\89\98 L2 â\86\92 â\87©*[Ⓕ,f] L1 ≘ L2.
 * /2 width=1 by drops_TF/
 qed-.
 
@@ -146,7 +146,7 @@ qed-.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact drops_inv_atom1_aux: â\88\80b,f,X,Y. â¬\87*[b,f] X ≘ Y → X = ⋆ →
+fact drops_inv_atom1_aux: â\88\80b,f,X,Y. â\87©*[b,f] X ≘ Y → X = ⋆ →
                           Y = ⋆ ∧ (b = Ⓣ → 𝐈⦃f⦄).
 #b #f #X #Y * -f -X -Y
 [ /3 width=1 by conj/
@@ -157,11 +157,11 @@ qed-.
 
 (* Basic_1: includes: drop_gen_sort *)
 (* Basic_2A1: includes: drop_inv_atom1 *)
-lemma drops_inv_atom1: â\88\80b,f,Y. â¬\87*[b,f] ⋆ ≘ Y → Y = ⋆ ∧ (b = Ⓣ → 𝐈⦃f⦄).
+lemma drops_inv_atom1: â\88\80b,f,Y. â\87©*[b,f] ⋆ ≘ Y → Y = ⋆ ∧ (b = Ⓣ → 𝐈⦃f⦄).
 /2 width=3 by drops_inv_atom1_aux/ qed-.
 
-fact drops_inv_drop1_aux: â\88\80b,f,X,Y. â¬\87*[b,f] X ≘ Y → ∀g,I,K. X = K.ⓘ{I} → f = ↑g →
-                          â¬\87*[b,g] K ≘ Y.
+fact drops_inv_drop1_aux: â\88\80b,f,X,Y. â\87©*[b,f] X ≘ Y → ∀g,I,K. X = K.ⓘ{I} → f = ↑g →
+                          â\87©*[b,g] K ≘ Y.
 #b #f #X #Y * -f -X -Y
 [ #f #Hf #g #J #K #H destruct
 | #f #I #L1 #L2 #HL #g #J #K #H1 #H2 <(injective_next … H2) -g destruct //
@@ -171,11 +171,11 @@ qed-.
 
 (* Basic_1: includes: drop_gen_drop *)
 (* Basic_2A1: includes: drop_inv_drop1_lt drop_inv_drop1 *)
-lemma drops_inv_drop1: â\88\80b,f,I,K,Y. â¬\87*[b,â\86\91f] K.â\93\98{I} â\89\98 Y â\86\92 â¬\87*[b,f] K ≘ Y.
+lemma drops_inv_drop1: â\88\80b,f,I,K,Y. â\87©*[b,â\86\91f] K.â\93\98{I} â\89\98 Y â\86\92 â\87©*[b,f] K ≘ Y.
 /2 width=6 by drops_inv_drop1_aux/ qed-.
 
-fact drops_inv_skip1_aux: â\88\80b,f,X,Y. â¬\87*[b,f] X ≘ Y → ∀g,I1,K1. X = K1.ⓘ{I1} → f = ⫯g →
-                          â\88\83â\88\83I2,K2. â¬\87*[b,g] K1 â\89\98 K2 & â¬\86*[g] I2 ≘ I1 & Y = K2.ⓘ{I2}.
+fact drops_inv_skip1_aux: â\88\80b,f,X,Y. â\87©*[b,f] X ≘ Y → ∀g,I1,K1. X = K1.ⓘ{I1} → f = ⫯g →
+                          â\88\83â\88\83I2,K2. â\87©*[b,g] K1 â\89\98 K2 & â\87§*[g] I2 ≘ I1 & Y = K2.ⓘ{I2}.
 #b #f #X #Y * -f -X -Y
 [ #f #Hf #g #J1 #K1 #H destruct
 | #f #I #L1 #L2 #_ #g #J1 #K1 #_ #H2 elim (discr_next_push … H2)
@@ -186,12 +186,12 @@ qed-.
 
 (* Basic_1: includes: drop_gen_skip_l *)
 (* Basic_2A1: includes: drop_inv_skip1 *)
-lemma drops_inv_skip1: â\88\80b,f,I1,K1,Y. â¬\87*[b,⫯f] K1.ⓘ{I1} ≘ Y →
-                       â\88\83â\88\83I2,K2. â¬\87*[b,f] K1 â\89\98 K2 & â¬\86*[f] I2 ≘ I1 & Y = K2.ⓘ{I2}.
+lemma drops_inv_skip1: â\88\80b,f,I1,K1,Y. â\87©*[b,⫯f] K1.ⓘ{I1} ≘ Y →
+                       â\88\83â\88\83I2,K2. â\87©*[b,f] K1 â\89\98 K2 & â\87§*[f] I2 ≘ I1 & Y = K2.ⓘ{I2}.
 /2 width=5 by drops_inv_skip1_aux/ qed-.
 
-fact drops_inv_skip2_aux: â\88\80b,f,X,Y. â¬\87*[b,f] X ≘ Y → ∀g,I2,K2. Y = K2.ⓘ{I2} → f = ⫯g →
-                          â\88\83â\88\83I1,K1. â¬\87*[b,g] K1 â\89\98 K2 & â¬\86*[g] I2 ≘ I1 & X = K1.ⓘ{I1}.
+fact drops_inv_skip2_aux: â\88\80b,f,X,Y. â\87©*[b,f] X ≘ Y → ∀g,I2,K2. Y = K2.ⓘ{I2} → f = ⫯g →
+                          â\88\83â\88\83I1,K1. â\87©*[b,g] K1 â\89\98 K2 & â\87§*[g] I2 ≘ I1 & X = K1.ⓘ{I1}.
 #b #f #X #Y * -f -X -Y
 [ #f #Hf #g #J2 #K2 #H destruct
 | #f #I #L1 #L2 #_ #g #J2 #K2 #_ #H2 elim (discr_next_push … H2)
@@ -202,14 +202,14 @@ qed-.
 
 (* Basic_1: includes: drop_gen_skip_r *)
 (* Basic_2A1: includes: drop_inv_skip2 *)
-lemma drops_inv_skip2: â\88\80b,f,I2,X,K2. â¬\87*[b,⫯f] X ≘ K2.ⓘ{I2} →
-                       â\88\83â\88\83I1,K1. â¬\87*[b,f] K1 â\89\98 K2 & â¬\86*[f] I2 ≘ I1 & X = K1.ⓘ{I1}.
+lemma drops_inv_skip2: â\88\80b,f,I2,X,K2. â\87©*[b,⫯f] X ≘ K2.ⓘ{I2} →
+                       â\88\83â\88\83I1,K1. â\87©*[b,f] K1 â\89\98 K2 & â\87§*[f] I2 ≘ I1 & X = K1.ⓘ{I1}.
 /2 width=5 by drops_inv_skip2_aux/ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-fact drops_fwd_drop2_aux: â\88\80b,f2,X,Y. â¬\87*[b,f2] X ≘ Y → ∀I,K. Y = K.ⓘ{I} →
-                          â\88\83â\88\83f1,f. ð\9d\90\88â¦\83f1â¦\84 & f2 â\8a\9a â\86\91f1 â\89\98 f & â¬\87*[b,f] X ≘ K.
+fact drops_fwd_drop2_aux: â\88\80b,f2,X,Y. â\87©*[b,f2] X ≘ Y → ∀I,K. Y = K.ⓘ{I} →
+                          â\88\83â\88\83f1,f. ð\9d\90\88â¦\83f1â¦\84 & f2 â\8a\9a â\86\91f1 â\89\98 f & â\87©*[b,f] X ≘ K.
 #b #f2 #X #Y #H elim H -f2 -X -Y
 [ #f2 #Hf2 #J #K #H destruct
 | #f2 #I #L1 #L2 #_ #IHL #J #K #H elim (IHL … H) -IHL
@@ -219,14 +219,14 @@ fact drops_fwd_drop2_aux: ∀b,f2,X,Y. ⬇*[b,f2] X ≘ Y → ∀I,K. Y = K.ⓘ{
 ]
 qed-.
 
-lemma drops_fwd_drop2: â\88\80b,f2,I,X,K. â¬\87*[b,f2] X ≘ K.ⓘ{I} →
-                       â\88\83â\88\83f1,f. ð\9d\90\88â¦\83f1â¦\84 & f2 â\8a\9a â\86\91f1 â\89\98 f & â¬\87*[b,f] X ≘ K.
+lemma drops_fwd_drop2: â\88\80b,f2,I,X,K. â\87©*[b,f2] X ≘ K.ⓘ{I} →
+                       â\88\83â\88\83f1,f. ð\9d\90\88â¦\83f1â¦\84 & f2 â\8a\9a â\86\91f1 â\89\98 f & â\87©*[b,f] X ≘ K.
 /2 width=4 by drops_fwd_drop2_aux/ qed-.
 
 (* Properties with test for identity ****************************************)
 
 (* Basic_2A1: includes: drop_refl *)
-lemma drops_refl: â\88\80b,L,f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L ≘ L.
+lemma drops_refl: â\88\80b,L,f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L ≘ L.
 #b #L elim L -L /2 width=1 by drops_atom/
 #L #I #IHL #f #Hf elim (isid_inv_gen … Hf) -Hf
 /3 width=1 by drops_skip, liftsb_refl/
@@ -236,15 +236,15 @@ qed.
 
 (* Basic_1: includes: drop_gen_refl *)
 (* Basic_2A1: includes: drop_inv_O2 *)
-lemma drops_fwd_isid: â\88\80b,f,L1,L2. â¬\87*[b,f] L1 ≘ L2 → 𝐈⦃f⦄ → L1 = L2.
+lemma drops_fwd_isid: â\88\80b,f,L1,L2. â\87©*[b,f] L1 ≘ L2 → 𝐈⦃f⦄ → L1 = L2.
 #b #f #L1 #L2 #H elim H -f -L1 -L2 //
 [ #f #I #L1 #L2 #_ #_ #H elim (isid_inv_next … H) //
 | /5 width=5 by isid_inv_push, liftsb_fwd_isid, eq_f2, sym_eq/
 ]
 qed-.
 
-lemma drops_after_fwd_drop2: â\88\80b,f2,I,X,K. â¬\87*[b,f2] X ≘ K.ⓘ{I} →
-                             â\88\80f1,f. ð\9d\90\88â¦\83f1â¦\84 â\86\92 f2 â\8a\9a â\86\91f1 â\89\98 f â\86\92 â¬\87*[b,f] X ≘ K.
+lemma drops_after_fwd_drop2: â\88\80b,f2,I,X,K. â\87©*[b,f2] X ≘ K.ⓘ{I} →
+                             â\88\80f1,f. ð\9d\90\88â¦\83f1â¦\84 â\86\92 f2 â\8a\9a â\86\91f1 â\89\98 f â\86\92 â\87©*[b,f] X ≘ K.
 #b #f2 #I #X #K #H #f1 #f #Hf1 #Hf elim (drops_fwd_drop2 … H) -H
 #g1 #g #Hg1 #Hg #HK lapply (after_mono_eq … Hg … Hf ??) -Hg -Hf
 /3 width=5 by drops_eq_repl_back, isid_inv_eq_repl, eq_next/
@@ -252,14 +252,14 @@ qed-.
 
 (* Forward lemmas with test for finite colength *****************************)
 
-lemma drops_fwd_isfin: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 → 𝐅⦃f⦄.
+lemma drops_fwd_isfin: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 → 𝐅⦃f⦄.
 #f #L1 #L2 #H elim H -f -L1 -L2
 /3 width=1 by isfin_next, isfin_push, isfin_isid/
 qed-.
 
 (* Properties with test for uniformity **************************************)
 
-lemma drops_isuni_ex: â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80L. â\88\83K. â¬\87*[Ⓕ,f] L ≘ K.
+lemma drops_isuni_ex: â\88\80f. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80L. â\88\83K. â\87©*[Ⓕ,f] L ≘ K.
 #f #H elim H -f /4 width=2 by drops_refl, drops_TF, ex_intro/
 #f #_ #g #H #IH destruct * /2 width=2 by ex_intro/ 
 #L #I elim (IH L) -IH /3 width=2 by drops_drop, ex_intro/
@@ -267,9 +267,9 @@ qed-.
 
 (* Inversion lemmas with test for uniformity ********************************)
 
-lemma drops_inv_isuni: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
+lemma drops_inv_isuni: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
                        (𝐈⦃f⦄ ∧ L1 = L2) ∨
-                       â\88\83â\88\83g,I,K. â¬\87*[Ⓣ,g] K ≘ L2 & 𝐔⦃g⦄ & L1 = K.ⓘ{I} & f = ↑g.
+                       â\88\83â\88\83g,I,K. â\87©*[Ⓣ,g] K ≘ L2 & 𝐔⦃g⦄ & L1 = K.ⓘ{I} & f = ↑g.
 #f #L1 #L2 * -f -L1 -L2
 [ /4 width=1 by or_introl, conj/
 | /4 width=7 by isuni_inv_next, ex4_3_intro, or_intror/
@@ -278,9 +278,9 @@ lemma drops_inv_isuni: ∀f,L1,L2. ⬇*[Ⓣ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
 qed-.
 
 (* Basic_2A1: was: drop_inv_O1_pair1 *)
-lemma drops_inv_bind1_isuni: â\88\80b,f,I,K,L2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] K.ⓘ{I} ≘ L2 →
+lemma drops_inv_bind1_isuni: â\88\80b,f,I,K,L2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] K.ⓘ{I} ≘ L2 →
                              (𝐈⦃f⦄ ∧ L2 = K.ⓘ{I}) ∨
-                             â\88\83â\88\83g. ð\9d\90\94â¦\83gâ¦\84 & â¬\87*[b,g] K ≘ L2 & f = ↑g.
+                             â\88\83â\88\83g. ð\9d\90\94â¦\83gâ¦\84 & â\87©*[b,g] K ≘ L2 & f = ↑g.
 #b #f #I #K #L2 #Hf #H elim (isuni_split … Hf) -Hf * #g #Hg #H0 destruct
 [ lapply (drops_inv_skip1 … H) -H * #Z #Y #HY #HZ #H destruct
   <(drops_fwd_isid … HY Hg) -Y >(liftsb_fwd_isid … HZ Hg) -Z
@@ -290,9 +290,9 @@ lemma drops_inv_bind1_isuni: ∀b,f,I,K,L2. 𝐔⦃f⦄ → ⬇*[b,f] K.ⓘ{I} 
 qed-.
 
 (* Basic_2A1: was: drop_inv_O1_pair2 *)
-lemma drops_inv_bind2_isuni: â\88\80b,f,I,K,L1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L1 ≘ K.ⓘ{I} →
+lemma drops_inv_bind2_isuni: â\88\80b,f,I,K,L1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L1 ≘ K.ⓘ{I} →
                              (𝐈⦃f⦄ ∧ L1 = K.ⓘ{I}) ∨
-                             â\88\83â\88\83g,I1,K1. ð\9d\90\94â¦\83gâ¦\84 & â¬\87*[b,g] K1 ≘ K.ⓘ{I} & L1 = K1.ⓘ{I1} & f = ↑g.
+                             â\88\83â\88\83g,I1,K1. ð\9d\90\94â¦\83gâ¦\84 & â\87©*[b,g] K1 ≘ K.ⓘ{I} & L1 = K1.ⓘ{I1} & f = ↑g.
 #b #f #I #K *
 [ #Hf #H elim (drops_inv_atom1 … H) -H #H destruct
 | #L1 #I1 #Hf #H elim (drops_inv_bind1_isuni … Hf H) -Hf -H *
@@ -302,16 +302,16 @@ lemma drops_inv_bind2_isuni: ∀b,f,I,K,L1. 𝐔⦃f⦄ → ⬇*[b,f] L1 ≘ K.
 ]
 qed-.
 
-lemma drops_inv_bind2_isuni_next: â\88\80b,f,I,K,L1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,↑f] L1 ≘ K.ⓘ{I} →
-                                  â\88\83â\88\83I1,K1. â¬\87*[b,f] K1 ≘ K.ⓘ{I} & L1 = K1.ⓘ{I1}.
+lemma drops_inv_bind2_isuni_next: â\88\80b,f,I,K,L1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,↑f] L1 ≘ K.ⓘ{I} →
+                                  â\88\83â\88\83I1,K1. â\87©*[b,f] K1 ≘ K.ⓘ{I} & L1 = K1.ⓘ{I1}.
 #b #f #I #K #L1 #Hf #H elim (drops_inv_bind2_isuni … H) -H /2 width=3 by isuni_next/ -Hf *
 [ #H elim (isid_inv_next … H) -H //
 | /2 width=4 by ex2_2_intro/
 ]
 qed-.
 
-fact drops_inv_TF_aux: â\88\80f,L1,L2. â¬\87*[Ⓕ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
-                       â\88\80I,K. L2 = K.â\93\98{I} â\86\92 â¬\87*[Ⓣ,f] L1 ≘ K.ⓘ{I}.
+fact drops_inv_TF_aux: â\88\80f,L1,L2. â\87©*[Ⓕ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
+                       â\88\80I,K. L2 = K.â\93\98{I} â\86\92 â\87©*[Ⓣ,f] L1 ≘ K.ⓘ{I}.
 #f #L1 #L2 #H elim H -f -L1 -L2
 [ #f #_ #_ #J #K #H destruct
 | #f #I #L1 #L2 #_ #IH #Hf #J #K #H destruct
@@ -324,16 +324,16 @@ fact drops_inv_TF_aux: ∀f,L1,L2. ⬇*[Ⓕ,f] L1 ≘ L2 → 𝐔⦃f⦄ →
 qed-.
 
 (* Basic_2A1: includes: drop_inv_FT *)
-lemma drops_inv_TF: â\88\80f,I,L,K. â¬\87*[â\92»,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[Ⓣ,f] L ≘ K.ⓘ{I}.
+lemma drops_inv_TF: â\88\80f,I,L,K. â\87©*[â\92»,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[Ⓣ,f] L ≘ K.ⓘ{I}.
 /2 width=3 by drops_inv_TF_aux/ qed-.
 
 (* Basic_2A1: includes: drop_inv_gen *)
-lemma drops_inv_gen: â\88\80b,f,I,L,K. â¬\87*[b,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[Ⓣ,f] L ≘ K.ⓘ{I}.
+lemma drops_inv_gen: â\88\80b,f,I,L,K. â\87©*[b,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[Ⓣ,f] L ≘ K.ⓘ{I}.
 * /2 width=1 by drops_inv_TF/
 qed-.
 
 (* Basic_2A1: includes: drop_inv_T *)
-lemma drops_inv_F: â\88\80b,f,I,L,K. â¬\87*[â\92»,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L ≘ K.ⓘ{I}.
+lemma drops_inv_F: â\88\80b,f,I,L,K. â\87©*[â\92»,f] L â\89\98 K.â\93\98{I} â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L ≘ K.ⓘ{I}.
 * /2 width=1 by drops_inv_TF/
 qed-.
 
@@ -341,13 +341,13 @@ qed-.
 
 (* Basic_1: was: drop_S *)
 (* Basic_2A1: was: drop_fwd_drop2 *)
-lemma drops_isuni_fwd_drop2: â\88\80b,f,I,X,K. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] X â\89\98 K.â\93\98{I} â\86\92 â¬\87*[b,↑f] X ≘ K.
+lemma drops_isuni_fwd_drop2: â\88\80b,f,I,X,K. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] X â\89\98 K.â\93\98{I} â\86\92 â\87©*[b,↑f] X ≘ K.
 /3 width=7 by drops_after_fwd_drop2, after_isid_isuni/ qed-.
 
 (* Inversion lemmas with uniform relocations ********************************)
 
-lemma drops_inv_atom2: â\88\80b,L,f. â¬\87*[b,f] L ≘ ⋆ →
-                       â\88\83â\88\83n,f1. â¬\87*[b,𝐔❴n❵] L ≘ ⋆ & 𝐔❴n❵ ⊚ f1 ≘ f.
+lemma drops_inv_atom2: â\88\80b,L,f. â\87©*[b,f] L ≘ ⋆ →
+                       â\88\83â\88\83n,f1. â\87©*[b,𝐔❴n❵] L ≘ ⋆ & 𝐔❴n❵ ⊚ f1 ≘ f.
 #b #L elim L -L
 [ /3 width=4 by drops_atom, after_isid_sn, ex2_2_intro/
 | #L #I #IH #f #H elim (pn_split f) * #g #H0 destruct
@@ -358,8 +358,8 @@ lemma drops_inv_atom2: ∀b,L,f. ⬇*[b,f] L ≘ ⋆ →
 ]
 qed-.
 
-lemma drops_inv_succ: â\88\80L1,L2,i. â¬\87*[↑i] L1 ≘ L2 →
-                      â\88\83â\88\83I,K. â¬\87*[i] K ≘ L2 & L1 = K.ⓘ{I}.
+lemma drops_inv_succ: â\88\80L1,L2,i. â\87©*[↑i] L1 ≘ L2 →
+                      â\88\83â\88\83I,K. â\87©*[i] K ≘ L2 & L1 = K.ⓘ{I}.
 #L1 #L2 #i #H elim (drops_inv_isuni … H) -H // *
 [ #H elim (isid_inv_next … H) -H //
 | /2 width=4 by ex2_2_intro/
@@ -368,7 +368,7 @@ qed-.
 
 (* Properties with uniform relocations **************************************)
 
-lemma drops_F_uni: â\88\80L,i. â¬\87*[â\92»,ð\9d\90\94â\9d´iâ\9dµ] L â\89\98 â\8b\86 â\88¨ â\88\83â\88\83I,K. â¬\87*[i] L ≘ K.ⓘ{I}.
+lemma drops_F_uni: â\88\80L,i. â\87©*[â\92»,ð\9d\90\94â\9d´iâ\9dµ] L â\89\98 â\8b\86 â\88¨ â\88\83â\88\83I,K. â\87©*[i] L ≘ K.ⓘ{I}.
 #L elim L -L /2 width=1 by or_introl/
 #L #I #IH * /4 width=3 by drops_refl, ex1_2_intro, or_intror/
 #i elim (IH i) -IH /3 width=1 by drops_drop, or_introl/
@@ -376,8 +376,8 @@ lemma drops_F_uni: ∀L,i. ⬇*[Ⓕ,𝐔❴i❵] L ≘ ⋆ ∨ ∃∃I,K. ⬇*[i
 qed-.
 
 (* Basic_2A1: includes: drop_split *)
-lemma drops_split_trans: â\88\80b,f,L1,L2. â¬\87*[b,f] L1 ≘ L2 → ∀f1,f2. f1 ⊚ f2 ≘ f → 𝐔⦃f1⦄ →
-                         â\88\83â\88\83L. â¬\87*[b,f1] L1 â\89\98 L & â¬\87*[b,f2] L ≘ L2.
+lemma drops_split_trans: â\88\80b,f,L1,L2. â\87©*[b,f] L1 ≘ L2 → ∀f1,f2. f1 ⊚ f2 ≘ f → 𝐔⦃f1⦄ →
+                         â\88\83â\88\83L. â\87©*[b,f1] L1 â\89\98 L & â\87©*[b,f2] L ≘ L2.
 #b #f #L1 #L2 #H elim H -f -L1 -L2
 [ #f #H0f #f1 #f2 #Hf #Hf1 @(ex2_intro … (⋆)) @drops_atom
   #H lapply (H0f H) -b
@@ -396,8 +396,8 @@ lemma drops_split_trans: ∀b,f,L1,L2. ⬇*[b,f] L1 ≘ L2 → ∀f1,f2. f1 ⊚
 ]
 qed-.
 
-lemma drops_split_div: â\88\80b,f1,L1,L. â¬\87*[b,f1] L1 ≘ L → ∀f2,f. f1 ⊚ f2 ≘ f → 𝐔⦃f2⦄ →
-                       â\88\83â\88\83L2. â¬\87*[â\92»,f2] L â\89\98 L2 & â¬\87*[Ⓕ,f] L1 ≘ L2.
+lemma drops_split_div: â\88\80b,f1,L1,L. â\87©*[b,f1] L1 ≘ L → ∀f2,f. f1 ⊚ f2 ≘ f → 𝐔⦃f2⦄ →
+                       â\88\83â\88\83L2. â\87©*[â\92»,f2] L â\89\98 L2 & â\87©*[Ⓕ,f] L1 ≘ L2.
 #b #f1 #L1 #L #H elim H -f1 -L1 -L
 [ #f1 #Hf1 #f2 #f #Hf #Hf2 @(ex2_intro … (⋆)) @drops_atom #H destruct
 | #f1 #I #L1 #L #HL1 #IH #f2 #f #Hf #Hf2 elim (after_inv_nxx … Hf) -Hf [2,3: // ]
@@ -417,12 +417,12 @@ qed-.
 (* Properties with application **********************************************)
 
 lemma drops_tls_at: ∀f,i1,i2. @⦃i1,f⦄ ≘ i2 →
-                    â\88\80b,L1,L2. â¬\87*[b,⫱*[i2]f] L1 ≘ L2 →
-                    â¬\87*[b,⫯⫱*[↑i2]f] L1 ≘ L2.
+                    â\88\80b,L1,L2. â\87©*[b,⫱*[i2]f] L1 ≘ L2 →
+                    â\87©*[b,⫯⫱*[↑i2]f] L1 ≘ L2.
 /3 width=3 by drops_eq_repl_fwd, at_inv_tls/ qed-.
 
-lemma drops_split_trans_bind2: â\88\80b,f,I,L,K0. â¬\87*[b,f] L ≘ K0.ⓘ{I} → ∀i. @⦃O,f⦄ ≘ i →
-                               â\88\83â\88\83J,K. â¬\87*[i]L â\89\98 K.â\93\98{J} & â¬\87*[b,⫱*[â\86\91i]f] K â\89\98 K0 & â¬\86*[⫱*[↑i]f] I ≘ J.
+lemma drops_split_trans_bind2: â\88\80b,f,I,L,K0. â\87©*[b,f] L ≘ K0.ⓘ{I} → ∀i. @⦃O,f⦄ ≘ i →
+                               â\88\83â\88\83J,K. â\87©*[i]L â\89\98 K.â\93\98{J} & â\87©*[b,⫱*[â\86\91i]f] K â\89\98 K0 & â\87§*[⫱*[↑i]f] I ≘ J.
 #b #f #I #L #K0 #H #i #Hf
 elim (drops_split_trans … H) -H [ |5: @(after_uni_dx … Hf) |2,3: skip ] /2 width=1 by after_isid_dx/ #Y #HLY #H
 lapply (drops_tls_at … Hf … H) -H #H
index 4e241edfdf1946c97276d1a02eaf92a933b2aa03..0e57eb6aaa6e7f809f74f556340099bbca3d8440 100644 (file)
@@ -20,9 +20,9 @@ include "static_2/relocation/drops_weight.ma".
 (* Main properties **********************************************************)
 
 (* Basic_2A1: includes: drop_conf_ge drop_conf_be drop_conf_le *)
-theorem drops_conf: â\88\80b1,f1,L1,L. â¬\87*[b1,f1] L1 ≘ L →
-                    â\88\80b2,f,L2. â¬\87*[b2,f] L1 ≘ L2 →
-                    â\88\80f2. f1 â\8a\9a f2 â\89\98 f â\86\92 â¬\87*[b2,f2] L ≘ L2.
+theorem drops_conf: â\88\80b1,f1,L1,L. â\87©*[b1,f1] L1 ≘ L →
+                    â\88\80b2,f,L2. â\87©*[b2,f] L1 ≘ L2 →
+                    â\88\80f2. f1 â\8a\9a f2 â\89\98 f â\86\92 â\87©*[b2,f2] L ≘ L2.
 #b1 #f1 #L1 #L #H elim H -f1 -L1 -L
 [ #f1 #_ #b2 #f #L2 #HL2 #f2 #Hf12 elim (drops_inv_atom1 … HL2) -b1 -HL2
   #H #Hf destruct @drops_atom
@@ -41,9 +41,9 @@ qed-.
 (* Basic_2A1: includes: drop_trans_ge drop_trans_le drop_trans_ge_comm 
                         drops_drop_trans
 *)
-theorem drops_trans: â\88\80b1,f1,L1,L. â¬\87*[b1,f1] L1 ≘ L →
-                     â\88\80b2,f2,L2. â¬\87*[b2,f2] L ≘ L2 →
-                     â\88\80f. f1 â\8a\9a f2 â\89\98 f â\86\92 â¬\87*[b1∧b2,f] L1 ≘ L2.
+theorem drops_trans: â\88\80b1,f1,L1,L. â\87©*[b1,f1] L1 ≘ L →
+                     â\88\80b2,f2,L2. â\87©*[b2,f2] L ≘ L2 →
+                     â\88\80f. f1 â\8a\9a f2 â\89\98 f â\86\92 â\87©*[b1∧b2,f] L1 ≘ L2.
 #b1 #f1 #L1 #L #H elim H -f1 -L1 -L
 [ #f1 #Hf1 #b2 #f2 #L2 #HL2 #f #Hf elim (drops_inv_atom1 … HL2) -HL2
   #H #Hf2 destruct @drops_atom #H elim (andb_inv_true_dx … H) -H
@@ -59,7 +59,7 @@ theorem drops_trans: ∀b1,f1,L1,L. ⬇*[b1,f1] L1 ≘ L →
 ]
 qed-.
 
-theorem drops_conf_div: â\88\80f1,L,K. â¬\87*[â\93\89,f1] L â\89\98 K â\86\92 â\88\80f2. â¬\87*[Ⓣ,f2] L ≘ K →
+theorem drops_conf_div: â\88\80f1,L,K. â\87©*[â\93\89,f1] L â\89\98 K â\86\92 â\88\80f2. â\87©*[Ⓣ,f2] L ≘ K →
                         𝐔⦃f1⦄ → 𝐔⦃f2⦄ → f1 ≡ f2.
 #f1 #L #K #H elim H -f1 -L -K
 [ #f1 #Hf1 #f2 #Hf2 elim (drops_inv_atom1 … Hf2) -Hf2
@@ -85,19 +85,19 @@ qed-.
 (* Advanced properties ******************************************************)
 
 (* Basic_2A1: includes: drop_mono *)
-lemma drops_mono: â\88\80b1,f,L,L1. â¬\87*[b1,f] L ≘ L1 →
-                  â\88\80b2,L2. â¬\87*[b2,f] L ≘ L2 → L1 = L2.
+lemma drops_mono: â\88\80b1,f,L,L1. â\87©*[b1,f] L ≘ L1 →
+                  â\88\80b2,L2. â\87©*[b2,f] L ≘ L2 → L1 = L2.
 #b1 #f #L #L1 lapply (after_isid_dx 𝐈𝐝 … f)
 /3 width=8 by drops_conf, drops_fwd_isid/
 qed-.
 
-lemma drops_inv_uni: â\88\80L,i. â¬\87*[â\92»,ð\9d\90\94â\9d´iâ\9dµ] L â\89\98 â\8b\86 â\86\92 â\88\80I,K. â¬\87*[i] L ≘ K.ⓘ{I} → ⊥.
+lemma drops_inv_uni: â\88\80L,i. â\87©*[â\92»,ð\9d\90\94â\9d´iâ\9dµ] L â\89\98 â\8b\86 â\86\92 â\88\80I,K. â\87©*[i] L ≘ K.ⓘ{I} → ⊥.
 #L #i #H1 #I #K #H2
 lapply (drops_F … H2) -H2 #H2
 lapply (drops_mono … H2 … H1) -L -i #H destruct
 qed-.
 
-lemma drops_ldec_dec: â\88\80L,i. Decidable (â\88\83â\88\83K,W. â¬\87*[i] L ≘ K.ⓛW).
+lemma drops_ldec_dec: â\88\80L,i. Decidable (â\88\83â\88\83K,W. â\87©*[i] L ≘ K.ⓛW).
 #L #i elim (drops_F_uni L i) [| * * [ #I #K1 | * #W1 #K1 ] ]
 [4: /3 width=3 by ex1_2_intro, or_introl/
 |*: #H1L @or_intror * #K2 #W2 #H2L
@@ -106,21 +106,21 @@ lemma drops_ldec_dec: ∀L,i. Decidable (∃∃K,W. ⬇*[i] L ≘ K.ⓛW).
 qed-.
 
 (* Basic_2A1: includes: drop_conf_lt *)
-lemma drops_conf_skip1: â\88\80b2,f,L,L2. â¬\87*[b2,f] L ≘ L2 →
-                        â\88\80b1,f1,I1,K1. â¬\87*[b1,f1] L ≘ K1.ⓘ{I1} →
+lemma drops_conf_skip1: â\88\80b2,f,L,L2. â\87©*[b2,f] L ≘ L2 →
+                        â\88\80b1,f1,I1,K1. â\87©*[b1,f1] L ≘ K1.ⓘ{I1} →
                         ∀f2. f1 ⊚ ⫯f2 ≘ f →
                         ∃∃I2,K2. L2 = K2.ⓘ{I2} &
-                                 â¬\87*[b2,f2] K1 â\89\98 K2 & â¬\86*[f2] I2 ≘ I1.
+                                 â\87©*[b2,f2] K1 â\89\98 K2 & â\87§*[f2] I2 ≘ I1.
 #b2 #f #L #L2 #H2 #b1 #f1 #I1 #K1 #H1 #f2 #Hf lapply (drops_conf … H1 … H2 … Hf) -L -Hf
 #H elim (drops_inv_skip1 … H) -H /2 width=5 by ex3_2_intro/
 qed-.
 
 (* Basic_2A1: includes: drop_trans_lt *)
-lemma drops_trans_skip2: â\88\80b1,f1,L1,L. â¬\87*[b1,f1] L1 ≘ L →
-                         â\88\80b2,f2,I2,K2. â¬\87*[b2,f2] L ≘ K2.ⓘ{I2} →
+lemma drops_trans_skip2: â\88\80b1,f1,L1,L. â\87©*[b1,f1] L1 ≘ L →
+                         â\88\80b2,f2,I2,K2. â\87©*[b2,f2] L ≘ K2.ⓘ{I2} →
                          ∀f. f1 ⊚ f2 ≘ ⫯f →
                          ∃∃I1,K1. L1 = K1.ⓘ{I1} &
-                                  â¬\87*[b1â\88§b2,f] K1 â\89\98 K2 & â¬\86*[f] I2 ≘ I1.
+                                  â\87©*[b1â\88§b2,f] K1 â\89\98 K2 & â\87§*[f] I2 ≘ I1.
 #b1 #f1 #L1 #L #H1 #b2 #f2 #I2 #K2 #H2 #f #Hf
 lapply (drops_trans … H1 … H2 … Hf) -L -Hf
 #H elim (drops_inv_skip2 … H) -H /2 width=5 by ex3_2_intro/
@@ -128,7 +128,7 @@ qed-.
 
 (* Basic_2A1: includes: drops_conf_div *)
 lemma drops_conf_div_bind: ∀f1,f2,I1,I2,L,K.
-                           â¬\87*[â\93\89,f1] L â\89\98 K.â\93\98{I1} â\86\92 â¬\87*[Ⓣ,f2] L ≘ K.ⓘ{I2} →
+                           â\87©*[â\93\89,f1] L â\89\98 K.â\93\98{I1} â\86\92 â\87©*[Ⓣ,f2] L ≘ K.ⓘ{I2} →
                            𝐔⦃f1⦄ → 𝐔⦃f2⦄ → f1 ≡ f2 ∧ I1 = I2.
 #f1 #f2 #I1 #I2 #L #K #Hf1 #Hf2 #HU1 #HU2
 lapply (drops_isuni_fwd_drop2 … Hf1) // #H1
index 1a20d722f2e8160f4a20e89515bcd261b91da5fb..73760857e9e8a0f02cc891ade8f95d61d17b667b 100644 (file)
@@ -20,13 +20,13 @@ include "static_2/relocation/drops.ma".
 (* Forward lemmas with length for local environments ************************)
 
 (* Basic_2A1: includes: drop_fwd_length_le4 *)
-lemma drops_fwd_length_le4: â\88\80b,f,L1,L2. â¬\87*[b,f] L1 ≘ L2 → |L2| ≤ |L1|.
+lemma drops_fwd_length_le4: â\88\80b,f,L1,L2. â\87©*[b,f] L1 ≘ L2 → |L2| ≤ |L1|.
 #b #f #L1 #L2 #H elim H -f -L1 -L2 /2 width=1 by le_S, le_S_S/
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_length_eq1 *)
-theorem drops_fwd_length_eq1: â\88\80b1,b2,f,L1,K1. â¬\87*[b1,f] L1 ≘ K1 →
-                              â\88\80L2,K2. â¬\87*[b2,f] L2 ≘ K2 →
+theorem drops_fwd_length_eq1: â\88\80b1,b2,f,L1,K1. â\87©*[b1,f] L1 ≘ K1 →
+                              â\88\80L2,K2. â\87©*[b2,f] L2 ≘ K2 →
                               |L1| = |L2| → |K1| = |K2|.
 #b1 #b2 #f #L1 #K1 #HLK1 elim HLK1 -f -L1 -K1
 [ #f #_ #L2 #K2 #HLK2 #H lapply (length_inv_zero_sn … H) -H
@@ -43,7 +43,7 @@ qed-.
 
 (* forward lemmas with finite colength assignment ***************************)
 
-lemma drops_fwd_fcla: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 →
+lemma drops_fwd_fcla: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 →
                       ∃∃n. 𝐂⦃f⦄ ≘ n & |L1| = |L2| + n.
 #f #L1 #L2 #H elim H -f -L1 -L2
 [ /4 width=3 by fcla_isid, ex2_intro/
@@ -53,25 +53,25 @@ lemma drops_fwd_fcla: ∀f,L1,L2. ⬇*[Ⓣ,f] L1 ≘ L2 →
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_length *)
-lemma drops_fcla_fwd: â\88\80f,L1,L2,n. â¬\87*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n →
+lemma drops_fcla_fwd: â\88\80f,L1,L2,n. â\87©*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n →
                       |L1| = |L2| + n.
 #f #l1 #l2 #n #Hf #Hn elim (drops_fwd_fcla … Hf) -Hf
 #k #Hm #H <(fcla_mono … Hm … Hn) -f //
 qed-.
 
-lemma drops_fwd_fcla_le2: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 →
+lemma drops_fwd_fcla_le2: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 →
                           ∃∃n. 𝐂⦃f⦄ ≘ n & n ≤ |L1|.
 #f #L1 #L2 #H elim (drops_fwd_fcla … H) -H /2 width=3 by ex2_intro/
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_length_le2 *)
-lemma drops_fcla_fwd_le2: â\88\80f,L1,L2,n. â¬\87*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n →
+lemma drops_fcla_fwd_le2: â\88\80f,L1,L2,n. â\87©*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n →
                           n ≤ |L1|.
 #f #L1 #L2 #n #H #Hn elim (drops_fwd_fcla_le2 … H) -H
 #k #Hm #H <(fcla_mono … Hm … Hn) -f //
 qed-.
 
-lemma drops_fwd_fcla_lt2: â\88\80f,L1,I2,K2. â¬\87*[Ⓣ,f] L1 ≘ K2.ⓘ{I2} →
+lemma drops_fwd_fcla_lt2: â\88\80f,L1,I2,K2. â\87©*[Ⓣ,f] L1 ≘ K2.ⓘ{I2} →
                           ∃∃n. 𝐂⦃f⦄ ≘ n & n < |L1|.
 #f #L1 #I2 #K2 #H elim (drops_fwd_fcla … H) -H
 #n #Hf #H >H -L1 /3 width=3 by le_S_S, ex2_intro/
@@ -79,27 +79,27 @@ qed-.
 
 (* Basic_2A1: includes: drop_fwd_length_lt2 *)
 lemma drops_fcla_fwd_lt2: ∀f,L1,I2,K2,n.
-                          â¬\87*[Ⓣ,f] L1 ≘ K2.ⓘ{I2} → 𝐂⦃f⦄ ≘ n →
+                          â\87©*[Ⓣ,f] L1 ≘ K2.ⓘ{I2} → 𝐂⦃f⦄ ≘ n →
                           n < |L1|.
 #f #L1 #I2 #K2 #n #H #Hn elim (drops_fwd_fcla_lt2 … H) -H
 #k #Hm #H <(fcla_mono … Hm … Hn) -f //
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_length_lt4 *)
-lemma drops_fcla_fwd_lt4: â\88\80f,L1,L2,n. â¬\87*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n → 0 < n →
+lemma drops_fcla_fwd_lt4: â\88\80f,L1,L2,n. â\87©*[Ⓣ,f] L1 ≘ L2 → 𝐂⦃f⦄ ≘ n → 0 < n →
                           |L2| < |L1|.
 #f #L1 #L2 #n #H #Hf #Hn lapply (drops_fcla_fwd … H Hf) -f
 /2 width=1 by lt_minus_to_plus_r/ qed-.
 
 (* Basic_2A1: includes: drop_inv_length_eq *)
-lemma drops_inv_length_eq: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 → |L1| = |L2| → 𝐈⦃f⦄.
+lemma drops_inv_length_eq: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 → |L1| = |L2| → 𝐈⦃f⦄.
 #f #L1 #L2 #H #HL12 elim (drops_fwd_fcla … H) -H
 #n #Hn <HL12 -L2 #H lapply (discr_plus_x_xy … H) -H
 /2 width=3 by fcla_inv_xp/
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_length_eq2 *)
-theorem drops_fwd_length_eq2: â\88\80f,L1,L2,K1,K2. â¬\87*[â\93\89,f] L1 â\89\98 K1 â\86\92 â¬\87*[Ⓣ,f] L2 ≘ K2 →
+theorem drops_fwd_length_eq2: â\88\80f,L1,L2,K1,K2. â\87©*[â\93\89,f] L1 â\89\98 K1 â\86\92 â\87©*[Ⓣ,f] L2 ≘ K2 →
                               |K1| = |K2| → |L1| = |L2|.
 #f #L1 #L2 #K1 #K2 #HLK1 #HLK2 #HL12
 elim (drops_fwd_fcla … HLK1) -HLK1 #n1 #Hn1 #H1 >H1 -L1
@@ -107,7 +107,7 @@ elim (drops_fwd_fcla … HLK2) -HLK2 #n2 #Hn2 #H2 >H2 -L2
 <(fcla_mono … Hn2 … Hn1) -f //
 qed-.
 
-theorem drops_conf_div: â\88\80f1,f2,L1,L2. â¬\87*[â\93\89,f1] L1 â\89\98 L2 â\86\92 â¬\87*[Ⓣ,f2] L1 ≘ L2 →
+theorem drops_conf_div: â\88\80f1,f2,L1,L2. â\87©*[â\93\89,f1] L1 â\89\98 L2 â\86\92 â\87©*[Ⓣ,f2] L1 ≘ L2 →
                         ∃∃n. 𝐂⦃f1⦄ ≘ n & 𝐂⦃f2⦄ ≘ n.
 #f1 #f2 #L1 #L2 #H1 #H2
 elim (drops_fwd_fcla … H1) -H1 #n1 #Hf1 #H1
@@ -116,7 +116,7 @@ lapply (injective_plus_r … H) -L2 #H destruct /2 width=3 by ex2_intro/
 qed-.
 
 theorem drops_conf_div_fcla: ∀f1,f2,L1,L2,n1,n2.
-                             â¬\87*[â\93\89,f1] L1 â\89\98 L2 â\86\92 â¬\87*[Ⓣ,f2] L1 ≘ L2 → 𝐂⦃f1⦄ ≘ n1 → 𝐂⦃f2⦄ ≘ n2 →
+                             â\87©*[â\93\89,f1] L1 â\89\98 L2 â\86\92 â\87©*[Ⓣ,f2] L1 ≘ L2 → 𝐂⦃f1⦄ ≘ n1 → 𝐂⦃f2⦄ ≘ n2 →
                              n1 = n2.
 #f1 #f2 #L1 #L2 #n1 #n2 #Hf1 #Hf2 #Hn1 #Hn2
 lapply (drops_fcla_fwd … Hf1 Hn1) -f1 #H1
index 8db2c8830dc915f1ff681744a461ea17b054ef79..97a95c63852675acc20b33516bbe6e2be3fc4478 100644 (file)
@@ -19,16 +19,16 @@ include "static_2/relocation/drops_sex.ma".
 (* GENERIC SLICING FOR LOCAL ENVIRONMENTS ***********************************)
 
 definition dedropable_sn: predicate … ≝
-                          Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → ∀K2. K1 ⪤[R] K2 →
-                          â\88\83â\88\83L2. L1 âª¤[R] L2 & â¬\87*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
+                          Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → ∀K2. K1 ⪤[R] K2 →
+                          â\88\83â\88\83L2. L1 âª¤[R] L2 & â\87©*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
 
 definition dropable_sn: predicate … ≝
-                        Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ → ∀L2. L1 ⪤[R] L2 →
-                        â\88\83â\88\83K2. K1 âª¤[R] K2 & â¬\87*[b,f] L2 ≘ K2.
+                        Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ → ∀L2. L1 ⪤[R] L2 →
+                        â\88\83â\88\83K2. K1 âª¤[R] K2 & â\87©*[b,f] L2 ≘ K2.
 
 definition dropable_dx: predicate … ≝
-                        Î»R. â\88\80L1,L2. L1 âª¤[R] L2 â\86\92 â\88\80b,f,K2. â¬\87*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
-                        â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & K1 ⪤[R] K2.
+                        Î»R. â\88\80L1,L2. L1 âª¤[R] L2 â\86\92 â\88\80b,f,K2. â\87©*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
+                        â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & K1 ⪤[R] K2.
 
 (* Properties with generic extension ****************************************)
 
@@ -58,8 +58,8 @@ qed-.
 
 (* Basic_2A1: includes: lpx_sn_drop_conf *)
 lemma lex_drops_conf_pair (R): ∀L1,L2. L1 ⪤[R] L2 →
-                               â\88\80b,f,I,K1,V1. â¬\87*[b,f] L1 ≘ K1.ⓑ{I}V1 → 𝐔⦃f⦄ →
-                               â\88\83â\88\83K2,V2. â¬\87*[b,f] L2 ≘ K2.ⓑ{I}V2 & K1 ⪤[R] K2 & R K1 V1 V2.
+                               â\88\80b,f,I,K1,V1. â\87©*[b,f] L1 ≘ K1.ⓑ{I}V1 → 𝐔⦃f⦄ →
+                               â\88\83â\88\83K2,V2. â\87©*[b,f] L2 ≘ K2.ⓑ{I}V2 & K1 ⪤[R] K2 & R K1 V1 V2.
 #R #L1 #L2 * #f2 #Hf2 #HL12 #b #f #I #K1 #V1 #HLK1 #Hf
 elim (sex_drops_conf_push … HL12 … HLK1 Hf f2) -L1 -Hf
 [ #Z2 #K2 #HLK2 #HK12 #H
@@ -71,8 +71,8 @@ qed-.
 
 (* Basic_2A1: includes: lpx_sn_drop_trans *)
 lemma lex_drops_trans_pair (R): ∀L1,L2. L1 ⪤[R] L2 →
-                                â\88\80b,f,I,K2,V2. â¬\87*[b,f] L2 ≘ K2.ⓑ{I}V2 → 𝐔⦃f⦄ →
-                                â\88\83â\88\83K1,V1. â¬\87*[b,f] L1 ≘ K1.ⓑ{I}V1 & K1 ⪤[R] K2 & R K1 V1 V2.
+                                â\88\80b,f,I,K2,V2. â\87©*[b,f] L2 ≘ K2.ⓑ{I}V2 → 𝐔⦃f⦄ →
+                                â\88\83â\88\83K1,V1. â\87©*[b,f] L1 ≘ K1.ⓑ{I}V1 & K1 ⪤[R] K2 & R K1 V1 V2.
 #R #L1 #L2 * #f2 #Hf2 #HL12 #b #f #I #K2 #V2 #HLK2 #Hf
 elim (sex_drops_trans_push … HL12 … HLK2 Hf f2) -L2 -Hf
 [ #Z1 #K1 #HLK1 #HK12 #H
index e214e9480c97ae83e308c8f85ab3dcdcd2b459f6..af2c4ef8821fe163f8e82c803bb793d31c2e1e63 100644 (file)
@@ -30,9 +30,9 @@ lemma seq_co_dropable_dx: co_dropable_dx seq.
 
 (* Basic_2A1: includes: lreq_drop_trans_be *)
 lemma seq_drops_trans_next: ∀f2,L1,L2. L1 ≡[f2] L2 →
-                            â\88\80b,f,I,K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I} → 𝐔⦃f⦄ →
+                            â\88\80b,f,I,K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I} → 𝐔⦃f⦄ →
                             ∀f1. f ~⊚ ↑f1 ≘ f2 →
-                            â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I} & K1 ≡[f1] K2.
+                            â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I} & K1 ≡[f1] K2.
 #f2 #L1 #L2 #HL12 #b #f #I2 #K2 #HLK2 #Hf #f1 #Hf2
 elim (sex_drops_trans_next … HL12 … HLK2 Hf … Hf2) -f2 -L2 -Hf
 #I1 #K1 #HLK1 #HK12 #H <(ceq_ext_inv_eq … H) -I2
@@ -41,18 +41,18 @@ qed-.
 
 (* Basic_2A1: includes: lreq_drop_conf_be *)
 lemma seq_drops_conf_next: ∀f2,L1,L2. L1 ≡[f2] L2 →
-                           â\88\80b,f,I,K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I} → 𝐔⦃f⦄ →
+                           â\88\80b,f,I,K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I} → 𝐔⦃f⦄ →
                            ∀f1. f ~⊚ ↑f1 ≘ f2 →
-                           â\88\83â\88\83K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I} & K1 ≡[f1] K2.
+                           â\88\83â\88\83K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I} & K1 ≡[f1] K2.
 #f2 #L1 #L2 #HL12 #b #f #I1 #K1 #HLK1 #Hf #f1 #Hf2
 elim (seq_drops_trans_next … (seq_sym … HL12) … HLK1 … Hf2) // -f2 -L1 -Hf
 /3 width=3 by seq_sym, ex2_intro/
 qed-.
 
 lemma drops_seq_trans_next: ∀f1,K1,K2. K1 ≡[f1] K2 →
-                            â\88\80b,f,I,L1. â¬\87*[b,f] L1.ⓘ{I} ≘ K1 →
+                            â\88\80b,f,I,L1. â\87©*[b,f] L1.ⓘ{I} ≘ K1 →
                             ∀f2. f ~⊚ f1 ≘ ↑f2 →
-                            â\88\83â\88\83L2. â¬\87*[b,f] L2.ⓘ{I} ≘ K2 & L1 ≡[f2] L2 & L1.ⓘ{I} ≡[f] L2.ⓘ{I}.
+                            â\88\83â\88\83L2. â\87©*[b,f] L2.ⓘ{I} ≘ K2 & L1 ≡[f2] L2 & L1.ⓘ{I} ≡[f] L2.ⓘ{I}.
 #f1 #K1 #K2 #HK12 #b #f #I1 #L1 #HLK1 #f2 #Hf2
 elim (drops_sex_trans_next … HK12 … HLK1 … Hf2) -f1 -K1
 /2 width=6 by cfull_lift_sn, ceq_lift_sn/
index 8f3058cb9c4df9e987ceae60568cab86a12e3d88..5fe9c362ea218cfb09319a366f619e2abc5040ed 100644 (file)
@@ -43,7 +43,7 @@ qed-.
 
 lemma sex_liftable_co_dedropable_bi: ∀RN,RP. d_liftable2_sn … liftsb RN → d_liftable2_sn … liftsb RP →
                                      ∀f2,L1,L2. L1 ⪤[cfull,RP,f2] L2 → ∀f1,K1,K2. K1 ⪤[RN,RP,f1] K2 →
-                                     â\88\80b,f. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
+                                     â\88\80b,f. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
                                      f ~⊚ f1 ≘ f2 → L1 ⪤[RN,RP,f2] L2.
 #RN #RP #HRN #HRP #f2 #L1 #L2 #H elim H -f2 -L1 -L2 //
 #g2 #I1 #I2 #L1 #L2 #HL12 #HI12 #IH #f1 #Y1 #Y2 #HK12 #b #f #HY1 #HY2 #H
@@ -87,9 +87,9 @@ lemma sex_liftable_co_dedropable_sn: ∀RN,RP. (∀L. reflexive … (RN L)) →
 ]
 qed-.
 
-fact sex_dropable_dx_aux: â\88\80RN,RP,b,f,L2,K2. â¬\87*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
+fact sex_dropable_dx_aux: â\88\80RN,RP,b,f,L2,K2. â\87©*[b,f] L2 ≘ K2 → 𝐔⦃f⦄ →
                           ∀f2,L1. L1 ⪤[RN,RP,f2] L2 → ∀f1. f ~⊚ f1 ≘ f2 →
-                          â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & K1 ⪤[RN,RP,f1] K2.
+                          â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & K1 ⪤[RN,RP,f1] K2.
 #RN #RP #b #f #L2 #K2 #H elim H -f -L2 -K2
 [ #f #Hf #_ #f2 #X #H #f1 #Hf2 lapply (sex_inv_atom2 … H) -H
   #H destruct /4 width=3 by sex_atom, drops_atom, ex2_intro/
@@ -114,9 +114,9 @@ lemma sex_co_dropable_dx: ∀RN,RP. co_dropable_dx (sex RN RP).
 
 lemma sex_drops_conf_next: ∀RN,RP.
                            ∀f2,L1,L2. L1 ⪤[RN,RP,f2] L2 →
-                           â\88\80b,f,I1,K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I1} → 𝐔⦃f⦄ →
+                           â\88\80b,f,I1,K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I1} → 𝐔⦃f⦄ →
                            ∀f1. f ~⊚ ↑f1 ≘ f2 →
-                           â\88\83â\88\83I2,K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I2} & K1 ⪤[RN,RP,f1] K2 & RN K1 I1 I2.
+                           â\88\83â\88\83I2,K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I2} & K1 ⪤[RN,RP,f1] K2 & RN K1 I1 I2.
 #RN #RP #f2 #L1 #L2 #HL12 #b #f #I1 #K1 #HLK1 #Hf #f1 #Hf2
 elim (sex_co_dropable_sn … HLK1 … Hf … HL12 … Hf2) -L1 -f2 -Hf
 #X #HX #HLK2 elim (sex_inv_next1 … HX) -HX
@@ -125,9 +125,9 @@ qed-.
 
 lemma sex_drops_conf_push: ∀RN,RP.
                            ∀f2,L1,L2. L1 ⪤[RN,RP,f2] L2 →
-                           â\88\80b,f,I1,K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I1} → 𝐔⦃f⦄ →
+                           â\88\80b,f,I1,K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I1} → 𝐔⦃f⦄ →
                            ∀f1. f ~⊚ ⫯f1 ≘ f2 →
-                           â\88\83â\88\83I2,K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I2} & K1 ⪤[RN,RP,f1] K2 & RP K1 I1 I2.
+                           â\88\83â\88\83I2,K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I2} & K1 ⪤[RN,RP,f1] K2 & RP K1 I1 I2.
 #RN #RP #f2 #L1 #L2 #HL12 #b #f #I1 #K1 #HLK1 #Hf #f1 #Hf2
 elim (sex_co_dropable_sn … HLK1 … Hf … HL12 … Hf2) -L1 -f2 -Hf
 #X #HX #HLK2 elim (sex_inv_push1 … HX) -HX
@@ -135,9 +135,9 @@ elim (sex_co_dropable_sn … HLK1 … Hf … HL12 … Hf2) -L1 -f2 -Hf
 qed-.
 
 lemma sex_drops_trans_next: ∀RN,RP,f2,L1,L2. L1 ⪤[RN,RP,f2] L2 →
-                            â\88\80b,f,I2,K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I2} → 𝐔⦃f⦄ →
+                            â\88\80b,f,I2,K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I2} → 𝐔⦃f⦄ →
                             ∀f1. f ~⊚ ↑f1 ≘ f2 →
-                            â\88\83â\88\83I1,K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I1} & K1 ⪤[RN,RP,f1] K2 & RN K1 I1 I2.
+                            â\88\83â\88\83I1,K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I1} & K1 ⪤[RN,RP,f1] K2 & RN K1 I1 I2.
 #RN #RP #f2 #L1 #L2 #HL12 #b #f #I2 #K2 #HLK2 #Hf #f1 #Hf2
 elim (sex_co_dropable_dx … HL12 … HLK2 … Hf … Hf2) -L2 -f2 -Hf
 #X #HLK1 #HX elim (sex_inv_next2 … HX) -HX
@@ -145,9 +145,9 @@ elim (sex_co_dropable_dx … HL12 … HLK2 … Hf … Hf2) -L2 -f2 -Hf
 qed-.
 
 lemma sex_drops_trans_push: ∀RN,RP,f2,L1,L2. L1 ⪤[RN,RP,f2] L2 →
-                            â\88\80b,f,I2,K2. â¬\87*[b,f] L2 ≘ K2.ⓘ{I2} → 𝐔⦃f⦄ →
+                            â\88\80b,f,I2,K2. â\87©*[b,f] L2 ≘ K2.ⓘ{I2} → 𝐔⦃f⦄ →
                             ∀f1. f ~⊚ ⫯f1 ≘ f2 →
-                            â\88\83â\88\83I1,K1. â¬\87*[b,f] L1 ≘ K1.ⓘ{I1} & K1 ⪤[RN,RP,f1] K2 & RP K1 I1 I2.
+                            â\88\83â\88\83I1,K1. â\87©*[b,f] L1 ≘ K1.ⓘ{I1} & K1 ⪤[RN,RP,f1] K2 & RP K1 I1 I2.
 #RN #RP #f2 #L1 #L2 #HL12 #b #f #I2 #K2 #HLK2 #Hf #f1 #Hf2
 elim (sex_co_dropable_dx … HL12 … HLK2 … Hf … Hf2) -L2 -f2 -Hf
 #X #HLK1 #HX elim (sex_inv_push2 … HX) -HX
@@ -157,9 +157,9 @@ qed-.
 lemma drops_sex_trans_next: ∀RN,RP. (∀L. reflexive ? (RN L)) → (∀L. reflexive ? (RP L)) →
                             d_liftable2_sn … liftsb RN → d_liftable2_sn … liftsb RP →
                             ∀f1,K1,K2. K1 ⪤[RN,RP,f1] K2 →
-                            â\88\80b,f,I1,L1. â¬\87*[b,f] L1.ⓘ{I1} ≘ K1 →
+                            â\88\80b,f,I1,L1. â\87©*[b,f] L1.ⓘ{I1} ≘ K1 →
                             ∀f2. f ~⊚ f1 ≘ ↑f2 →
-                            â\88\83â\88\83I2,L2. â¬\87*[b,f] L2.ⓘ{I2} ≘ K2 & L1 ⪤[RN,RP,f2] L2 & RN L1 I1 I2 & L1.ⓘ{I1} ≡[f] L2.ⓘ{I2}.
+                            â\88\83â\88\83I2,L2. â\87©*[b,f] L2.ⓘ{I2} ≘ K2 & L1 ⪤[RN,RP,f2] L2 & RN L1 I1 I2 & L1.ⓘ{I1} ≡[f] L2.ⓘ{I2}.
 #RN #RP #H1RN #H1RP #H2RN #H2RP #f1 #K1 #K2 #HK12 #b #f #I1 #L1 #HLK1 #f2 #Hf2
 elim (sex_liftable_co_dedropable_sn … H1RN H1RP H2RN H2RP … HLK1 … HK12 … Hf2) -K1 -f1 -H1RN -H1RP -H2RN -H2RP
 #X #HX #HLK2 #H1L12 elim (sex_inv_next1 … HX) -HX
@@ -169,18 +169,18 @@ qed-.
 lemma drops_sex_trans_push: ∀RN,RP. (∀L. reflexive ? (RN L)) → (∀L. reflexive ? (RP L)) →
                             d_liftable2_sn … liftsb RN → d_liftable2_sn … liftsb RP →
                             ∀f1,K1,K2. K1 ⪤[RN,RP,f1] K2 →
-                            â\88\80b,f,I1,L1. â¬\87*[b,f] L1.ⓘ{I1} ≘ K1 →
+                            â\88\80b,f,I1,L1. â\87©*[b,f] L1.ⓘ{I1} ≘ K1 →
                             ∀f2. f ~⊚ f1 ≘ ⫯f2 →
-                            â\88\83â\88\83I2,L2. â¬\87*[b,f] L2.ⓘ{I2} ≘ K2 & L1 ⪤[RN,RP,f2] L2 & RP L1 I1 I2 & L1.ⓘ{I1} ≡[f] L2.ⓘ{I2}.
+                            â\88\83â\88\83I2,L2. â\87©*[b,f] L2.ⓘ{I2} ≘ K2 & L1 ⪤[RN,RP,f2] L2 & RP L1 I1 I2 & L1.ⓘ{I1} ≡[f] L2.ⓘ{I2}.
 #RN #RP #H1RN #H1RP #H2RN #H2RP #f1 #K1 #K2 #HK12 #b #f #I1 #L1 #HLK1 #f2 #Hf2
 elim (sex_liftable_co_dedropable_sn … H1RN H1RP H2RN H2RP … HLK1 … HK12 … Hf2) -K1 -f1 -H1RN -H1RP -H2RN -H2RP
 #X #HX #HLK2 #H1L12 elim (sex_inv_push1 … HX) -HX
 #I2 #L2 #H2L12 #HI12 #H destruct /2 width=6 by ex4_2_intro/
 qed-.
 
-lemma drops_atom2_sex_conf: â\88\80RN,RP,b,f1,L1. â¬\87*[b,f1] L1 ≘ ⋆ → 𝐔⦃f1⦄ →
+lemma drops_atom2_sex_conf: â\88\80RN,RP,b,f1,L1. â\87©*[b,f1] L1 ≘ ⋆ → 𝐔⦃f1⦄ →
                             ∀f,L2. L1 ⪤[RN,RP,f] L2 →
-                            â\88\80f2. f1 ~â\8a\9a f2 â\89\98f â\86\92 â¬\87*[b,f1] L2 ≘ ⋆.
+                            â\88\80f2. f1 ~â\8a\9a f2 â\89\98f â\86\92 â\87©*[b,f1] L2 ≘ ⋆.
 #RN #RP #b #f1 #L1 #H1 #Hf1 #f #L2 #H2 #f2 #H3
 elim (sex_co_dropable_sn … H1 … H2 … H3) // -H1 -H2 -H3 -Hf1
 #L #H #HL2 lapply (sex_inv_atom1 … H) -H //
index 4f5eef0173ddbf9403981669c043934cfeea5a30..3c3f2bec8b710eefe2c96aa8ddcbf9c15cb5cc6b 100644 (file)
@@ -19,8 +19,8 @@ include "static_2/relocation/drops.ma".
 
 definition d_liftable1_all: predicate (relation2 lenv term) ≝
                             λR. ∀K,Ts. all … (R K) Ts →
-                            â\88\80b,f,L. â¬\87*[b,f] L ≘ K →
-                            â\88\80Us. â¬\86*[f] Ts ≘ Us → all … (R L) Us.
+                            â\88\80b,f,L. â\87©*[b,f] L ≘ K →
+                            â\88\80Us. â\87§*[f] Ts ≘ Us → all … (R L) Us.
 
 (* Properties with generic relocation for term vectors **********************)
 
index 8c94cce14a187565c7196643884f6f099c12b3f0..e6bd458ea4bf9515dd82c12112f649a11dbab94d 100644 (file)
@@ -21,7 +21,7 @@ include "static_2/relocation/drops.ma".
 (* Forward lemmas with weight for local environments ************************)
 
 (* Basic_2A1: includes: drop_fwd_lw *)
-lemma drops_fwd_lw: â\88\80b,f,L1,L2. â¬\87*[b,f] L1 ≘ L2 → ♯{L2} ≤ ♯{L1}.
+lemma drops_fwd_lw: â\88\80b,f,L1,L2. â\87©*[b,f] L1 ≘ L2 → ♯{L2} ≤ ♯{L1}.
 #b #f #L1 #L2 #H elim H -f -L1 -L2 //
 [ /2 width=3 by transitive_le/
 | #f #I1 #I2 #L1 #L2 #_ #HI21 #IHL12 normalize
@@ -30,7 +30,7 @@ lemma drops_fwd_lw: ∀b,f,L1,L2. ⬇*[b,f] L1 ≘ L2 → ♯{L2} ≤ ♯{L1}.
 qed-.
 
 (* Basic_2A1: includes: drop_fwd_lw_lt *)
-lemma drops_fwd_lw_lt: â\88\80f,L1,L2. â¬\87*[Ⓣ,f] L1 ≘ L2 →
+lemma drops_fwd_lw_lt: â\88\80f,L1,L2. â\87©*[Ⓣ,f] L1 ≘ L2 →
                        (𝐈⦃f⦄ → ⊥) → ♯{L2} < ♯{L1}.
 #f #L1 #L2 #H elim H -f -L1 -L2
 [ #f #Hf #Hnf elim Hnf -Hnf /2 width=1 by/
@@ -43,14 +43,14 @@ qed-.
 (* Forward lemmas with restricted weight for closures ***********************)
 
 (* Basic_2A1: includes: drop_fwd_rfw *)
-lemma drops_bind2_fwd_rfw: â\88\80b,f,I,L,K,V. â¬\87*[b,f] L ≘ K.ⓑ{I}V → ∀T. ♯{K,V} < ♯{L,T}.
+lemma drops_bind2_fwd_rfw: â\88\80b,f,I,L,K,V. â\87©*[b,f] L ≘ K.ⓑ{I}V → ∀T. ♯{K,V} < ♯{L,T}.
 #b #f #I #L #K #V #HLK lapply (drops_fwd_lw … HLK) -HLK
 normalize in ⊢ (%→?→?%%); /3 width=3 by le_to_lt_to_lt, monotonic_lt_plus_r/
 qed-.
 
 (* Advanced inversion lemma *************************************************)
 
-lemma drops_inv_x_bind_xy: â\88\80b,f,I,L. â¬\87*[b,f] L ≘ L.ⓘ{I} → ⊥.
+lemma drops_inv_x_bind_xy: â\88\80b,f,I,L. â\87©*[b,f] L ≘ L.ⓘ{I} → ⊥.
 #b #f #I #L #H lapply (drops_fwd_lw … H) -b -f
 /2 width=4 by lt_le_false/ (**) (* full auto is a bit slow: 19s *)
 qed-.
index 4ec47cc91e47a93787cc259b65cc02b62541d386..b888af22d7fa684c8226547d410179a0627c3356 100644 (file)
@@ -41,32 +41,32 @@ interpretation "generic relocation (term)"
    'RLiftStar f T1 T2 = (lifts f T1 T2).
 
 definition liftable2_sn: predicate (relation term) ≝
-                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U1. â¬\86*[f] T1 ≘ U1 → 
-                         â\88\83â\88\83U2. â¬\86*[f] T2 ≘ U2 & R U1 U2.
+                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U1. â\87§*[f] T1 ≘ U1 → 
+                         â\88\83â\88\83U2. â\87§*[f] T2 ≘ U2 & R U1 U2.
 
 definition deliftable2_sn: predicate (relation term) ≝
-                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T1. â¬\86*[f] T1 ≘ U1 →
-                           â\88\83â\88\83T2. â¬\86*[f] T2 ≘ U2 & R T1 T2.
+                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T1. â\87§*[f] T1 ≘ U1 →
+                           â\88\83â\88\83T2. â\87§*[f] T2 ≘ U2 & R T1 T2.
 
 definition liftable2_bi: predicate (relation term) ≝
-                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U1. â¬\86*[f] T1 ≘ U1 → 
-                         â\88\80U2. â¬\86*[f] T2 ≘ U2 → R U1 U2.
+                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U1. â\87§*[f] T1 ≘ U1 → 
+                         â\88\80U2. â\87§*[f] T2 ≘ U2 → R U1 U2.
 
 definition deliftable2_bi: predicate (relation term) ≝
-                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T1. â¬\86*[f] T1 ≘ U1 →
-                           â\88\80T2. â¬\86*[f] T2 ≘ U2 → R T1 T2.
+                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T1. â\87§*[f] T1 ≘ U1 →
+                           â\88\80T2. â\87§*[f] T2 ≘ U2 → R T1 T2.
 
 definition liftable2_dx: predicate (relation term) ≝
-                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U2. â¬\86*[f] T2 ≘ U2 →
-                         â\88\83â\88\83U1. â¬\86*[f] T1 ≘ U1 & R U1 U2.
+                         Î»R. â\88\80T1,T2. R T1 T2 â\86\92 â\88\80f,U2. â\87§*[f] T2 ≘ U2 →
+                         â\88\83â\88\83U1. â\87§*[f] T1 ≘ U1 & R U1 U2.
 
 definition deliftable2_dx: predicate (relation term) ≝
-                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T2. â¬\86*[f] T2 ≘ U2 →
-                           â\88\83â\88\83T1. â¬\86*[f] T1 ≘ U1 & R T1 T2.
+                           Î»R. â\88\80U1,U2. R U1 U2 â\86\92 â\88\80f,T2. â\87§*[f] T2 ≘ U2 →
+                           â\88\83â\88\83T1. â\87§*[f] T1 ≘ U1 & R T1 T2.
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lifts_inv_sort1_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀s. X = ⋆s → Y = ⋆s.
+fact lifts_inv_sort1_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀s. X = ⋆s → Y = ⋆s.
 #f #X #Y * -f -X -Y //
 [ #f #i1 #i2 #_ #x #H destruct
 | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #x #H destruct
@@ -76,10 +76,10 @@ qed-.
 
 (* Basic_1: was: lift1_sort *)
 (* Basic_2A1: includes: lift_inv_sort1 *)
-lemma lifts_inv_sort1: â\88\80f,Y,s. â¬\86*[f] ⋆s ≘ Y → Y = ⋆s.
+lemma lifts_inv_sort1: â\88\80f,Y,s. â\87§*[f] ⋆s ≘ Y → Y = ⋆s.
 /2 width=4 by lifts_inv_sort1_aux/ qed-.
 
-fact lifts_inv_lref1_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀i1. X = #i1 →
+fact lifts_inv_lref1_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀i1. X = #i1 →
                           ∃∃i2. @⦃i1,f⦄ ≘ i2 & Y = #i2.
 #f #X #Y * -f -X -Y
 [ #f #s #x #H destruct
@@ -92,11 +92,11 @@ qed-.
 
 (* Basic_1: was: lift1_lref *)
 (* Basic_2A1: includes: lift_inv_lref1 lift_inv_lref1_lt lift_inv_lref1_ge *)
-lemma lifts_inv_lref1: â\88\80f,Y,i1. â¬\86*[f] #i1 ≘ Y →
+lemma lifts_inv_lref1: â\88\80f,Y,i1. â\87§*[f] #i1 ≘ Y →
                        ∃∃i2. @⦃i1,f⦄ ≘ i2 & Y = #i2.
 /2 width=3 by lifts_inv_lref1_aux/ qed-.
 
-fact lifts_inv_gref1_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀l. X = §l → Y = §l.
+fact lifts_inv_gref1_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀l. X = §l → Y = §l.
 #f #X #Y * -f -X -Y //
 [ #f #i1 #i2 #_ #x #H destruct
 | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #x #H destruct
@@ -105,12 +105,12 @@ fact lifts_inv_gref1_aux: ∀f,X,Y. ⬆*[f] X ≘ Y → ∀l. X = §l → Y = §
 qed-.
 
 (* Basic_2A1: includes: lift_inv_gref1 *)
-lemma lifts_inv_gref1: â\88\80f,Y,l. â¬\86*[f] §l ≘ Y → Y = §l.
+lemma lifts_inv_gref1: â\88\80f,Y,l. â\87§*[f] §l ≘ Y → Y = §l.
 /2 width=4 by lifts_inv_gref1_aux/ qed-.
 
-fact lifts_inv_bind1_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y →
+fact lifts_inv_bind1_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y →
                           ∀p,I,V1,T1. X = ⓑ{p,I}V1.T1 →
-                          â\88\83â\88\83V2,T2. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[⫯f] T1 ≘ T2 &
+                          â\88\83â\88\83V2,T2. â\87§*[f] V1 â\89\98 V2 & â\87§*[⫯f] T1 ≘ T2 &
                                    Y = ⓑ{p,I}V2.T2.
 #f #X #Y * -f -X -Y
 [ #f #s #q #J #W1 #U1 #H destruct
@@ -123,14 +123,14 @@ qed-.
 
 (* Basic_1: was: lift1_bind *)
 (* Basic_2A1: includes: lift_inv_bind1 *)
-lemma lifts_inv_bind1: â\88\80f,p,I,V1,T1,Y. â¬\86*[f] ⓑ{p,I}V1.T1 ≘ Y →
-                       â\88\83â\88\83V2,T2. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[⫯f] T1 ≘ T2 &
+lemma lifts_inv_bind1: â\88\80f,p,I,V1,T1,Y. â\87§*[f] ⓑ{p,I}V1.T1 ≘ Y →
+                       â\88\83â\88\83V2,T2. â\87§*[f] V1 â\89\98 V2 & â\87§*[⫯f] T1 ≘ T2 &
                                 Y = ⓑ{p,I}V2.T2.
 /2 width=3 by lifts_inv_bind1_aux/ qed-.
 
-fact lifts_inv_flat1_aux: â\88\80f:rtmap. â\88\80X,Y. â¬\86*[f] X ≘ Y →
+fact lifts_inv_flat1_aux: â\88\80f:rtmap. â\88\80X,Y. â\87§*[f] X ≘ Y →
                           ∀I,V1,T1. X = ⓕ{I}V1.T1 →
-                          â\88\83â\88\83V2,T2. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[f] T1 ≘ T2 &
+                          â\88\83â\88\83V2,T2. â\87§*[f] V1 â\89\98 V2 & â\87§*[f] T1 ≘ T2 &
                                    Y = ⓕ{I}V2.T2.
 #f #X #Y * -f -X -Y
 [ #f #s #J #W1 #U1 #H destruct
@@ -143,12 +143,12 @@ qed-.
 
 (* Basic_1: was: lift1_flat *)
 (* Basic_2A1: includes: lift_inv_flat1 *)
-lemma lifts_inv_flat1: â\88\80f:rtmap. â\88\80I,V1,T1,Y. â¬\86*[f] ⓕ{I}V1.T1 ≘ Y →
-                       â\88\83â\88\83V2,T2. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[f] T1 ≘ T2 &
+lemma lifts_inv_flat1: â\88\80f:rtmap. â\88\80I,V1,T1,Y. â\87§*[f] ⓕ{I}V1.T1 ≘ Y →
+                       â\88\83â\88\83V2,T2. â\87§*[f] V1 â\89\98 V2 & â\87§*[f] T1 ≘ T2 &
                                 Y = ⓕ{I}V2.T2.
 /2 width=3 by lifts_inv_flat1_aux/ qed-.
 
-fact lifts_inv_sort2_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀s. Y = ⋆s → X = ⋆s.
+fact lifts_inv_sort2_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀s. Y = ⋆s → X = ⋆s.
 #f #X #Y * -f -X -Y //
 [ #f #i1 #i2 #_ #x #H destruct
 | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #x #H destruct
@@ -158,10 +158,10 @@ qed-.
 
 (* Basic_1: includes: lift_gen_sort *)
 (* Basic_2A1: includes: lift_inv_sort2 *)
-lemma lifts_inv_sort2: â\88\80f,X,s. â¬\86*[f] X ≘ ⋆s → X = ⋆s.
+lemma lifts_inv_sort2: â\88\80f,X,s. â\87§*[f] X ≘ ⋆s → X = ⋆s.
 /2 width=4 by lifts_inv_sort2_aux/ qed-.
 
-fact lifts_inv_lref2_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀i2. Y = #i2 →
+fact lifts_inv_lref2_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀i2. Y = #i2 →
                           ∃∃i1. @⦃i1,f⦄ ≘ i2 & X = #i1.
 #f #X #Y * -f -X -Y
 [ #f #s #x #H destruct
@@ -174,11 +174,11 @@ qed-.
 
 (* Basic_1: includes: lift_gen_lref lift_gen_lref_lt lift_gen_lref_false lift_gen_lref_ge *)
 (* Basic_2A1: includes: lift_inv_lref2 lift_inv_lref2_lt lift_inv_lref2_be lift_inv_lref2_ge lift_inv_lref2_plus *)
-lemma lifts_inv_lref2: â\88\80f,X,i2. â¬\86*[f] X ≘ #i2 →
+lemma lifts_inv_lref2: â\88\80f,X,i2. â\87§*[f] X ≘ #i2 →
                        ∃∃i1. @⦃i1,f⦄ ≘ i2 & X = #i1.
 /2 width=3 by lifts_inv_lref2_aux/ qed-.
 
-fact lifts_inv_gref2_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → ∀l. Y = §l → X = §l.
+fact lifts_inv_gref2_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → ∀l. Y = §l → X = §l.
 #f #X #Y * -f -X -Y //
 [ #f #i1 #i2 #_ #x #H destruct
 | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #x #H destruct
@@ -187,12 +187,12 @@ fact lifts_inv_gref2_aux: ∀f,X,Y. ⬆*[f] X ≘ Y → ∀l. Y = §l → X = §
 qed-.
 
 (* Basic_2A1: includes: lift_inv_gref1 *)
-lemma lifts_inv_gref2: â\88\80f,X,l. â¬\86*[f] X ≘ §l → X = §l.
+lemma lifts_inv_gref2: â\88\80f,X,l. â\87§*[f] X ≘ §l → X = §l.
 /2 width=4 by lifts_inv_gref2_aux/ qed-.
 
-fact lifts_inv_bind2_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y →
+fact lifts_inv_bind2_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y →
                           ∀p,I,V2,T2. Y = ⓑ{p,I}V2.T2 →
-                          â\88\83â\88\83V1,T1. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[⫯f] T1 ≘ T2 &
+                          â\88\83â\88\83V1,T1. â\87§*[f] V1 â\89\98 V2 & â\87§*[⫯f] T1 ≘ T2 &
                                    X = ⓑ{p,I}V1.T1.
 #f #X #Y * -f -X -Y
 [ #f #s #q #J #W2 #U2 #H destruct
@@ -205,14 +205,14 @@ qed-.
 
 (* Basic_1: includes: lift_gen_bind *)
 (* Basic_2A1: includes: lift_inv_bind2 *)
-lemma lifts_inv_bind2: â\88\80f,p,I,V2,T2,X. â¬\86*[f] X ≘ ⓑ{p,I}V2.T2 →
-                       â\88\83â\88\83V1,T1. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[⫯f] T1 ≘ T2 &
+lemma lifts_inv_bind2: â\88\80f,p,I,V2,T2,X. â\87§*[f] X ≘ ⓑ{p,I}V2.T2 →
+                       â\88\83â\88\83V1,T1. â\87§*[f] V1 â\89\98 V2 & â\87§*[⫯f] T1 ≘ T2 &
                                 X = ⓑ{p,I}V1.T1.
 /2 width=3 by lifts_inv_bind2_aux/ qed-.
 
-fact lifts_inv_flat2_aux: â\88\80f:rtmap. â\88\80X,Y. â¬\86*[f] X ≘ Y →
+fact lifts_inv_flat2_aux: â\88\80f:rtmap. â\88\80X,Y. â\87§*[f] X ≘ Y →
                           ∀I,V2,T2. Y = ⓕ{I}V2.T2 →
-                          â\88\83â\88\83V1,T1. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[f] T1 ≘ T2 &
+                          â\88\83â\88\83V1,T1. â\87§*[f] V1 â\89\98 V2 & â\87§*[f] T1 ≘ T2 &
                                    X = ⓕ{I}V1.T1.
 #f #X #Y * -f -X -Y
 [ #f #s #J #W2 #U2 #H destruct
@@ -225,14 +225,14 @@ qed-.
 
 (* Basic_1: includes: lift_gen_flat *)
 (* Basic_2A1: includes: lift_inv_flat2 *)
-lemma lifts_inv_flat2: â\88\80f:rtmap. â\88\80I,V2,T2,X. â¬\86*[f] X ≘ ⓕ{I}V2.T2 →
-                       â\88\83â\88\83V1,T1. â¬\86*[f] V1 â\89\98 V2 & â¬\86*[f] T1 ≘ T2 &
+lemma lifts_inv_flat2: â\88\80f:rtmap. â\88\80I,V2,T2,X. â\87§*[f] X ≘ ⓕ{I}V2.T2 →
+                       â\88\83â\88\83V1,T1. â\87§*[f] V1 â\89\98 V2 & â\87§*[f] T1 ≘ T2 &
                                 X = ⓕ{I}V1.T1.
 /2 width=3 by lifts_inv_flat2_aux/ qed-.
 
 (* Advanced inversion lemmas ************************************************)
 
-lemma lifts_inv_atom1: â\88\80f,I,Y. â¬\86*[f] ⓪{I} ≘ Y →
+lemma lifts_inv_atom1: â\88\80f,I,Y. â\87§*[f] ⓪{I} ≘ Y →
                        ∨∨ ∃∃s. I = Sort s & Y = ⋆s
                         | ∃∃i,j. @⦃i,f⦄ ≘ j & I = LRef i & Y = #j
                         | ∃∃l. I = GRef l & Y = §l.
@@ -243,7 +243,7 @@ lemma lifts_inv_atom1: ∀f,I,Y. ⬆*[f] ⓪{I} ≘ Y →
 ] -H /3 width=5 by or3_intro0, or3_intro1, or3_intro2, ex3_2_intro, ex2_intro/
 qed-.
 
-lemma lifts_inv_atom2: â\88\80f,I,X. â¬\86*[f] X ≘ ⓪{I} →
+lemma lifts_inv_atom2: â\88\80f,I,X. â\87§*[f] X ≘ ⓪{I} →
                        ∨∨ ∃∃s. X = ⋆s & I = Sort s
                         | ∃∃i,j. @⦃i,f⦄ ≘ j & X = #i & I = LRef j
                         | ∃∃l. X = §l & I = GRef l.
@@ -255,7 +255,7 @@ lemma lifts_inv_atom2: ∀f,I,X. ⬆*[f] X ≘ ⓪{I} →
 qed-.
 
 (* Basic_2A1: includes: lift_inv_pair_xy_x *)
-lemma lifts_inv_pair_xy_x: â\88\80f,I,V,T. â¬\86*[f] ②{I}V.T ≘ V → ⊥.
+lemma lifts_inv_pair_xy_x: â\88\80f,I,V,T. â\87§*[f] ②{I}V.T ≘ V → ⊥.
 #f #J #V elim V -V
 [ * #i #U #H
   [ lapply (lifts_inv_sort2 … H) -H #H destruct
@@ -272,7 +272,7 @@ qed-.
 
 (* Basic_1: includes: thead_x_lift_y_y *)
 (* Basic_2A1: includes: lift_inv_pair_xy_y *)
-lemma lifts_inv_pair_xy_y: â\88\80I,T,V,f. â¬\86*[f] ②{I}V.T ≘ T → ⊥.
+lemma lifts_inv_pair_xy_y: â\88\80I,T,V,f. â\87§*[f] ②{I}V.T ≘ T → ⊥.
 #J #T elim T -T
 [ * #i #W #f #H
   [ lapply (lifts_inv_sort2 … H) -H #H destruct
@@ -289,22 +289,22 @@ qed-.
 
 (* Inversion lemmas with uniform relocations ********************************)
 
-lemma lifts_inv_lref1_uni: â\88\80l,Y,i. â¬\86*[l] #i ≘ Y → Y = #(l+i).
+lemma lifts_inv_lref1_uni: â\88\80l,Y,i. â\87§*[l] #i ≘ Y → Y = #(l+i).
 #l #Y #i1 #H elim (lifts_inv_lref1 … H) -H /4 width=4 by at_mono, eq_f/
 qed-.
 
-lemma lifts_inv_lref2_uni: â\88\80l,X,i2. â¬\86*[l] X ≘ #i2 →
+lemma lifts_inv_lref2_uni: â\88\80l,X,i2. â\87§*[l] X ≘ #i2 →
                            ∃∃i1. X = #i1 & i2 = l + i1.
 #l #X #i2 #H elim (lifts_inv_lref2 … H) -H
 /3 width=3 by at_inv_uni, ex2_intro/
 qed-.
 
-lemma lifts_inv_lref2_uni_ge: â\88\80l,X,i. â¬\86*[l] X ≘ #(l + i) → X = #i.
+lemma lifts_inv_lref2_uni_ge: â\88\80l,X,i. â\87§*[l] X ≘ #(l + i) → X = #i.
 #l #X #i2 #H elim (lifts_inv_lref2_uni … H) -H
 #i1 #H1 #H2 destruct /4 width=2 by injective_plus_r, eq_f, sym_eq/
 qed-.
 
-lemma lifts_inv_lref2_uni_lt: â\88\80l,X,i. â¬\86*[l] X ≘ #i → i < l → ⊥.
+lemma lifts_inv_lref2_uni_lt: â\88\80l,X,i. â\87§*[l] X ≘ #i → i < l → ⊥.
 #l #X #i2 #H elim (lifts_inv_lref2_uni … H) -H
 #i1 #_ #H1 #H2 destruct /2 width=4 by lt_le_false/
 qed-.
@@ -312,14 +312,14 @@ qed-.
 (* Basic forward lemmas *****************************************************)
 
 (* Basic_2A1: includes: lift_inv_O2 *)
-lemma lifts_fwd_isid: â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 → 𝐈⦃f⦄ → T1 = T2.
+lemma lifts_fwd_isid: â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 → 𝐈⦃f⦄ → T1 = T2.
 #f #T1 #T2 #H elim H -f -T1 -T2
 /4 width=3 by isid_inv_at_mono, isid_push, eq_f2, eq_f/
 qed-.
 
 (* Basic_2A1: includes: lift_fwd_pair1 *)
-lemma lifts_fwd_pair1: â\88\80f:rtmap. â\88\80I,V1,T1,Y. â¬\86*[f] ②{I}V1.T1 ≘ Y →
-                       â\88\83â\88\83V2,T2. â¬\86*[f] V1 ≘ V2 & Y = ②{I}V2.T2.
+lemma lifts_fwd_pair1: â\88\80f:rtmap. â\88\80I,V1,T1,Y. â\87§*[f] ②{I}V1.T1 ≘ Y →
+                       â\88\83â\88\83V2,T2. â\87§*[f] V1 ≘ V2 & Y = ②{I}V2.T2.
 #f * [ #p ] #I #V1 #T1 #Y #H
 [ elim (lifts_inv_bind1 … H) -H /2 width=4 by ex2_2_intro/
 | elim (lifts_inv_flat1 … H) -H /2 width=4 by ex2_2_intro/
@@ -327,8 +327,8 @@ lemma lifts_fwd_pair1: ∀f:rtmap. ∀I,V1,T1,Y. ⬆*[f] ②{I}V1.T1 ≘ Y →
 qed-.
 
 (* Basic_2A1: includes: lift_fwd_pair2 *)
-lemma lifts_fwd_pair2: â\88\80f:rtmap. â\88\80I,V2,T2,X. â¬\86*[f] X ≘ ②{I}V2.T2 →
-                       â\88\83â\88\83V1,T1. â¬\86*[f] V1 ≘ V2 & X = ②{I}V1.T1.
+lemma lifts_fwd_pair2: â\88\80f:rtmap. â\88\80I,V2,T2,X. â\87§*[f] X ≘ ②{I}V2.T2 →
+                       â\88\83â\88\83V1,T1. â\87§*[f] V1 ≘ V2 & X = ②{I}V1.T1.
 #f * [ #p ] #I #V2 #T2 #X #H
 [ elim (lifts_inv_bind2 … H) -H /2 width=4 by ex2_2_intro/
 | elim (lifts_inv_flat2 … H) -H /2 width=4 by ex2_2_intro/
@@ -347,24 +347,24 @@ lemma deliftable2_sn_dx (R): symmetric … R → deliftable2_sn R → deliftable
 elim (H1R … U1 … HTU2) -H1R /3 width=3 by ex2_intro/
 qed-.
 
-lemma lifts_eq_repl_back: â\88\80T1,T2. eq_repl_back â\80¦ (λf. â¬\86*[f] T1 ≘ T2).
+lemma lifts_eq_repl_back: â\88\80T1,T2. eq_repl_back â\80¦ (λf. â\87§*[f] T1 ≘ T2).
 #T1 #T2 #f1 #H elim H -T1 -T2 -f1
 /4 width=5 by lifts_flat, lifts_bind, lifts_lref, at_eq_repl_back, eq_push/
 qed-.
 
-lemma lifts_eq_repl_fwd: â\88\80T1,T2. eq_repl_fwd â\80¦ (λf. â¬\86*[f] T1 ≘ T2).
+lemma lifts_eq_repl_fwd: â\88\80T1,T2. eq_repl_fwd â\80¦ (λf. â\87§*[f] T1 ≘ T2).
 #T1 #T2 @eq_repl_sym /2 width=3 by lifts_eq_repl_back/ (**) (* full auto fails *)
 qed-.
 
 (* Basic_1: includes: lift_r *)
 (* Basic_2A1: includes: lift_refl *)
-lemma lifts_refl: â\88\80T,f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 â¬\86*[f] T ≘ T.
+lemma lifts_refl: â\88\80T,f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 â\87§*[f] T ≘ T.
 #T elim T -T *
 /4 width=3 by lifts_flat, lifts_bind, lifts_lref, isid_inv_at, isid_push/
 qed.
 
 (* Basic_2A1: includes: lift_total *)
-lemma lifts_total: â\88\80T1,f. â\88\83T2. â¬\86*[f] T1 ≘ T2.
+lemma lifts_total: â\88\80T1,f. â\88\83T2. â\87§*[f] T1 ≘ T2.
 #T1 elim T1 -T1 *
 /3 width=2 by lifts_lref, lifts_sort, lifts_gref, ex_intro/
 [ #p ] #I #V1 #T1 #IHV1 #IHT1 #f
@@ -374,24 +374,24 @@ elim (IHV1 f) -IHV1 #V2 #HV12
 ]
 qed-.
 
-lemma lifts_push_zero (f): â¬\86*[⫯f]#0 ≘ #0.
+lemma lifts_push_zero (f): â\87§*[⫯f]#0 ≘ #0.
 /2 width=1 by lifts_lref/ qed.
 
-lemma lifts_push_lref (f) (i1) (i2): â¬\86*[f]#i1 â\89\98 #i2 â\86\92 â¬\86*[⫯f]#(↑i1) ≘ #(↑i2).
+lemma lifts_push_lref (f) (i1) (i2): â\87§*[f]#i1 â\89\98 #i2 â\86\92 â\87§*[⫯f]#(↑i1) ≘ #(↑i2).
 #f1 #i1 #i2 #H
 elim (lifts_inv_lref1 … H) -H #j #Hij #H destruct
 /3 width=7 by lifts_lref, at_push/
 qed.
 
-lemma lifts_lref_uni: â\88\80l,i. â¬\86*[l] #i ≘ #(l+i).
+lemma lifts_lref_uni: â\88\80l,i. â\87§*[l] #i ≘ #(l+i).
 #l elim l -l /2 width=1 by lifts_lref/
 qed.
 
 (* Basic_1: includes: lift_free (right to left) *)
 (* Basic_2A1: includes: lift_split *)
-lemma lifts_split_trans: â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 →
+lemma lifts_split_trans: â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 →
                          ∀f1,f2. f2 ⊚ f1 ≘ f →
-                         â\88\83â\88\83T. â¬\86*[f1] T1 â\89\98 T & â¬\86*[f2] T ≘ T2.
+                         â\88\83â\88\83T. â\87§*[f1] T1 â\89\98 T & â\87§*[f2] T ≘ T2.
 #f #T1 #T2 #H elim H -f -T1 -T2
 [ /3 width=3 by lifts_sort, ex2_intro/
 | #f #i1 #i2 #Hi #f1 #f2 #Ht elim (after_at_fwd … Hi … Ht) -Hi -Ht
@@ -407,9 +407,9 @@ lemma lifts_split_trans: ∀f,T1,T2. ⬆*[f] T1 ≘ T2 →
 qed-.
 
 (* Note: apparently, this was missing in Basic_2A1 *)
-lemma lifts_split_div: â\88\80f1,T1,T2. â¬\86*[f1] T1 ≘ T2 →
+lemma lifts_split_div: â\88\80f1,T1,T2. â\87§*[f1] T1 ≘ T2 →
                        ∀f2,f. f2 ⊚ f1 ≘ f →
-                       â\88\83â\88\83T. â¬\86*[f2] T2 â\89\98 T & â¬\86*[f] T1 ≘ T.
+                       â\88\83â\88\83T. â\87§*[f2] T2 â\89\98 T & â\87§*[f] T1 ≘ T.
 #f1 #T1 #T2 #H elim H -f1 -T1 -T2
 [ /3 width=3 by lifts_sort, ex2_intro/
 | #f1 #i1 #i2 #Hi #f2 #f #Ht elim (after_at1_fwd … Hi … Ht) -Hi -Ht
@@ -426,7 +426,7 @@ qed-.
 
 (* Basic_1: includes: dnf_dec2 dnf_dec *)
 (* Basic_2A1: includes: is_lift_dec *)
-lemma is_lifts_dec: â\88\80T2,f. Decidable (â\88\83T1. â¬\86*[f] T1 ≘ T2).
+lemma is_lifts_dec: â\88\80T2,f. Decidable (â\88\83T1. â\87§*[f] T1 ≘ T2).
 #T1 elim T1 -T1
 [ * [1,3: /3 width=2 by lifts_sort, lifts_gref, ex_intro, or_introl/ ]
   #i2 #f elim (is_at_dec f i2) //
@@ -460,7 +460,7 @@ qed-.
 
 (* Properties with uniform relocation ***************************************)
 
-lemma lifts_uni: â\88\80n1,n2,T,U. â¬\86*[ð\9d\90\94â\9d´n1â\9dµâ\88\98ð\9d\90\94â\9d´n2â\9dµ] T â\89\98 U â\86\92 â¬\86*[n1+n2] T ≘ U.
+lemma lifts_uni: â\88\80n1,n2,T,U. â\87§*[ð\9d\90\94â\9d´n1â\9dµâ\88\98ð\9d\90\94â\9d´n2â\9dµ] T â\89\98 U â\86\92 â\87§*[n1+n2] T ≘ U.
 /3 width=4 by lifts_eq_repl_back, after_inv_total/ qed.
 
 (* Basic_2A1: removed theorems 14:
index 6d2ca03d9cca00fadb643d4bb80b597501936ed4..fa1b12d002b989d9966727f4a81bc1d212454f4f 100644 (file)
@@ -23,13 +23,13 @@ interpretation "basic relocation (term)"
 
 (* Properties with basic relocation *****************************************)
 
-lemma lifts_lref_lt (m,n,i): i < m â\86\92 â¬\86[m,n] #i ≘ #i.
+lemma lifts_lref_lt (m,n,i): i < m â\86\92 â\87§[m,n] #i ≘ #i.
 /3 width=1 by lifts_lref, at_basic_lt/ qed.
 
-lemma lifts_lref_ge (m,n,i): m â\89¤ i â\86\92 â¬\86[m,n] #i ≘ #(n+i).
+lemma lifts_lref_ge (m,n,i): m â\89¤ i â\86\92 â\87§[m,n] #i ≘ #(n+i).
 /3 width=1 by lifts_lref, at_basic_ge/ qed.
 
-lemma lifts_lref_ge_minus (m,n,i): n+m â\89¤ i â\86\92 â¬\86[m,n] #(i-n) ≘ #i.
+lemma lifts_lref_ge_minus (m,n,i): n+m â\89¤ i â\86\92 â\87§[m,n] #(i-n) ≘ #i.
 #m #n #i #Hi
 >(plus_minus_m_m i n) in ⊢ (???%);
 /3 width=2 by lifts_lref_ge, le_plus_to_minus_l, le_plus_b/
index 10630903b944b1b51d9d7faf8522618015535e22..d3f36a65e6f5fd5ccdd044a36480a8b393202c11 100644 (file)
@@ -28,37 +28,37 @@ interpretation "generic relocation (binder for local environments)"
 
 (* Basic_inversion lemmas **************************************************)
 
-lemma liftsb_inv_unit_sn: â\88\80f,I,Z2. â¬\86*[f] BUnit I ≘ Z2 → Z2 = BUnit I.
+lemma liftsb_inv_unit_sn: â\88\80f,I,Z2. â\87§*[f] BUnit I ≘ Z2 → Z2 = BUnit I.
 /2 width=2 by ext2_inv_unit_sn/ qed-.
 
-lemma liftsb_inv_pair_sn: â\88\80f:rtmap. â\88\80Z2,I,V1. â¬\86*[f] BPair I V1 ≘ Z2 →
-                          â\88\83â\88\83V2. â¬\86*[f] V1 ≘ V2 & Z2 = BPair I V2.
+lemma liftsb_inv_pair_sn: â\88\80f:rtmap. â\88\80Z2,I,V1. â\87§*[f] BPair I V1 ≘ Z2 →
+                          â\88\83â\88\83V2. â\87§*[f] V1 ≘ V2 & Z2 = BPair I V2.
 /2 width=1 by ext2_inv_pair_sn/ qed-.
 
-lemma liftsb_inv_unit_dx: â\88\80f,I,Z1. â¬\86*[f] Z1 ≘ BUnit I → Z1 = BUnit I.
+lemma liftsb_inv_unit_dx: â\88\80f,I,Z1. â\87§*[f] Z1 ≘ BUnit I → Z1 = BUnit I.
 /2 width=2 by ext2_inv_unit_dx/ qed-.
 
-lemma liftsb_inv_pair_dx: â\88\80f:rtmap. â\88\80Z1,I,V2. â¬\86*[f] Z1 ≘ BPair I V2 →
-                          â\88\83â\88\83V1. â¬\86*[f] V1 ≘ V2 & Z1 = BPair I V1.
+lemma liftsb_inv_pair_dx: â\88\80f:rtmap. â\88\80Z1,I,V2. â\87§*[f] Z1 ≘ BPair I V2 →
+                          â\88\83â\88\83V1. â\87§*[f] V1 ≘ V2 & Z1 = BPair I V1.
 /2 width=1 by ext2_inv_pair_dx/ qed-.
 
 (* Basic properties *********************************************************)
 
-lemma liftsb_eq_repl_back: â\88\80I1,I2. eq_repl_back â\80¦ (λf. â¬\86*[f] I1 ≘ I2).
+lemma liftsb_eq_repl_back: â\88\80I1,I2. eq_repl_back â\80¦ (λf. â\87§*[f] I1 ≘ I2).
 #I1 #I2 #f1 * -I1 -I2 /3 width=3 by lifts_eq_repl_back, ext2_pair/
 qed-.
 
 lemma liftsb_refl: ∀f. 𝐈⦃f⦄ → reflexive … (liftsb f).
 /3 width=1 by lifts_refl, ext2_refl/ qed.
 
-lemma liftsb_total: â\88\80I1,f. â\88\83I2. â¬\86*[f] I1 ≘ I2.
+lemma liftsb_total: â\88\80I1,f. â\88\83I2. â\87§*[f] I1 ≘ I2.
 * [2: #I #T1 #f elim (lifts_total T1 f) ]
 /3 width=2 by ext2_unit, ext2_pair, ex_intro/
 qed-.
 
-lemma liftsb_split_trans: â\88\80f,I1,I2. â¬\86*[f] I1 ≘ I2 →
+lemma liftsb_split_trans: â\88\80f,I1,I2. â\87§*[f] I1 ≘ I2 →
                           ∀f1,f2. f2 ⊚ f1 ≘ f →
-                          â\88\83â\88\83I. â¬\86*[f1] I1 â\89\98 I & â¬\86*[f2] I ≘ I2.
+                          â\88\83â\88\83I. â\87§*[f1] I1 â\89\98 I & â\87§*[f2] I ≘ I2.
 #f #I1 #I2 * -I1 -I2 /2 width=3 by ext2_unit, ex2_intro/
 #I #V1 #V2 #HV12 #f1 #f2 #Hf elim (lifts_split_trans … HV12 … Hf) -f
 /3 width=3 by ext2_pair, ex2_intro/
@@ -66,6 +66,6 @@ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma liftsb_fwd_isid: â\88\80f,I1,I2. â¬\86*[f] I1 ≘ I2 → 𝐈⦃f⦄ → I1 = I2.
+lemma liftsb_fwd_isid: â\88\80f,I1,I2. â\87§*[f] I1 ≘ I2 → 𝐈⦃f⦄ → I1 = I2.
 #f #I1 #I2 * -I1 -I2 /3 width=3 by lifts_fwd_isid, eq_f2/
 qed-.
index 0581f6d1c3a28dc4b3b07b25473737a83e54a537..e55582cb9870f5ffe2675df88e24c41ef15d4ffa 100644 (file)
@@ -20,9 +20,9 @@ include "static_2/relocation/lifts.ma".
 
 (* Basic_1: includes: lift_gen_lift *)
 (* Basic_2A1: includes: lift_div_le lift_div_be *)
-theorem lifts_div4: â\88\80f2,Tf,T. â¬\86*[f2] Tf â\89\98 T â\86\92 â\88\80g2,Tg. â¬\86*[g2] Tg ≘ T →
+theorem lifts_div4: â\88\80f2,Tf,T. â\87§*[f2] Tf â\89\98 T â\86\92 â\88\80g2,Tg. â\87§*[g2] Tg ≘ T →
                     ∀f1,g1. H_at_div f2 g2 f1 g1 →
-                    â\88\83â\88\83T0. â¬\86*[f1] T0 â\89\98 Tf & â¬\86*[g1] T0 ≘ Tg.
+                    â\88\83â\88\83T0. â\87§*[f1] T0 â\89\98 Tf & â\87§*[g1] T0 ≘ Tg.
 #f2 #Tf #T #H elim H -f2 -Tf -T
 [ #f2 #s #g2 #Tg #H #f1 #g1 #_
   lapply (lifts_inv_sort2 … H) -H #H destruct
@@ -46,13 +46,13 @@ theorem lifts_div4: ∀f2,Tf,T. ⬆*[f2] Tf ≘ T → ∀g2,Tg. ⬆*[g2] Tg ≘
 ]
 qed-.
 
-lemma lifts_div4_one: â\88\80f,Tf,T. â¬\86*[⫯f] Tf ≘ T →
-                      â\88\80T1. â¬\86*[1] T1 ≘ T →
-                      â\88\83â\88\83T0. â¬\86*[1] T0 â\89\98 Tf & â¬\86*[f] T0 ≘ T1.
+lemma lifts_div4_one: â\88\80f,Tf,T. â\87§*[⫯f] Tf ≘ T →
+                      â\88\80T1. â\87§*[1] T1 ≘ T →
+                      â\88\83â\88\83T0. â\87§*[1] T0 â\89\98 Tf & â\87§*[f] T0 ≘ T1.
 /4 width=6 by lifts_div4, at_div_id_dx, at_div_pn/ qed-.
 
-theorem lifts_div3: â\88\80f2,T,T2. â¬\86*[f2] T2 â\89\98 T â\86\92 â\88\80f,T1. â¬\86*[f] T1 ≘ T →
-                    â\88\80f1. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f1] T1 ≘ T2.
+theorem lifts_div3: â\88\80f2,T,T2. â\87§*[f2] T2 â\89\98 T â\86\92 â\88\80f,T1. â\87§*[f] T1 ≘ T →
+                    â\88\80f1. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f1] T1 ≘ T2.
 #f2 #T #T2 #H elim H -f2 -T -T2
 [ #f2 #s #f #T1 #H >(lifts_inv_sort2 … H) -T1 //
 | #f2 #i2 #i #Hi2 #f #T1 #H #f1 #Ht21 elim (lifts_inv_lref2 … H) -H
@@ -70,8 +70,8 @@ qed-.
 (* Basic_1: was: lift1_lift1 (left to right) *)
 (* Basic_1: includes: lift_free (left to right) lift_d lift1_xhg (right to left) lift1_free (right to left) *)
 (* Basic_2A1: includes: lift_trans_be lift_trans_le lift_trans_ge lifts_lift_trans_le lifts_lift_trans *)
-theorem lifts_trans: â\88\80f1,T1,T. â¬\86*[f1] T1 â\89\98 T â\86\92 â\88\80f2,T2. â¬\86*[f2] T ≘ T2 →
-                     â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f] T1 ≘ T2.
+theorem lifts_trans: â\88\80f1,T1,T. â\87§*[f1] T1 â\89\98 T â\86\92 â\88\80f2,T2. â\87§*[f2] T ≘ T2 →
+                     â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f] T1 ≘ T2.
 #f1 #T1 #T #H elim H -f1 -T1 -T
 [ #f1 #s #f2 #T2 #H >(lifts_inv_sort1 … H) -T2 //
 | #f1 #i1 #i #Hi1 #f2 #T2 #H #f #Ht21 elim (lifts_inv_lref1 … H) -H
@@ -87,13 +87,13 @@ theorem lifts_trans: ∀f1,T1,T. ⬆*[f1] T1 ≘ T → ∀f2,T2. ⬆*[f2] T ≘
 qed-.
 
 lemma lifts_trans4_one (f) (T1) (T2):
-                       â\88\80T. â¬\86*[1]T1 â\89\98 T â\86\92 â¬\86*[⫯f]T ≘ T2 →
-                       â\88\83â\88\83T0. â¬\86*[f]T1 â\89\98 T0 & â¬\86*[1]T0 ≘ T2.
+                       â\88\80T. â\87§*[1]T1 â\89\98 T â\86\92 â\87§*[⫯f]T ≘ T2 →
+                       â\88\83â\88\83T0. â\87§*[f]T1 â\89\98 T0 & â\87§*[1]T0 ≘ T2.
 /4 width=6 by lifts_trans, lifts_split_trans, after_uni_one_dx/ qed-.
 
 (* Basic_2A1: includes: lift_conf_O1 lift_conf_be *)
-theorem lifts_conf: â\88\80f1,T,T1. â¬\86*[f1] T â\89\98 T1 â\86\92 â\88\80f,T2. â¬\86*[f] T ≘ T2 →
-                    â\88\80f2. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f2] T1 ≘ T2.
+theorem lifts_conf: â\88\80f1,T,T1. â\87§*[f1] T â\89\98 T1 â\86\92 â\88\80f,T2. â\87§*[f] T ≘ T2 →
+                    â\88\80f2. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f2] T1 ≘ T2.
 #f1 #T #T1 #H elim H -f1 -T -T1
 [ #f1 #s #f #T2 #H >(lifts_inv_sort1 … H) -T2 //
 | #f1 #i #i1 #Hi1 #f #T2 #H #f2 #Ht21 elim (lifts_inv_lref1 … H) -H
index e08ce99623bb64d2883ec077856fbb070f425809..39f9c23109396a5e65f98572baf4b16d0fca7e25 100644 (file)
@@ -19,22 +19,22 @@ include "static_2/relocation/lifts_bind.ma".
 
 (* Main properties **********************************************************)
 
-theorem liftsb_div3: â\88\80f2,I,I2. â¬\86*[f2] I2 â\89\98 I â\86\92 â\88\80f,I1. â¬\86*[f] I1 ≘ I →
-                     â\88\80f1. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f1] I1 ≘ I2.
+theorem liftsb_div3: â\88\80f2,I,I2. â\87§*[f2] I2 â\89\98 I â\86\92 â\88\80f,I1. â\87§*[f] I1 ≘ I →
+                     â\88\80f1. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f1] I1 ≘ I2.
 #f2 #I #I2 * -I -I2 #I [2: #V #V2 #HV2 ] #f #I1 #H
 [ elim (liftsb_inv_pair_dx … H) | lapply (liftsb_inv_unit_dx … H) ] -H
 /3 width=6 by lifts_div3, ext2_pair, ext2_unit/
 qed-.
 
-theorem liftsb_trans: â\88\80f1,I1,I. â¬\86*[f1] I1 â\89\98 I â\86\92 â\88\80f2,I2. â¬\86*[f2] I ≘ I2 →
-                      â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f] I1 ≘ I2.
+theorem liftsb_trans: â\88\80f1,I1,I. â\87§*[f1] I1 â\89\98 I â\86\92 â\88\80f2,I2. â\87§*[f2] I ≘ I2 →
+                      â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f] I1 ≘ I2.
 #f1 #I1 #I * -I1 -I #I1 [2: #V1 #V #HV1 ] #f2 #I2 #H
 [ elim (liftsb_inv_pair_sn … H) | lapply (liftsb_inv_unit_sn … H) ] -H
 /3 width=6 by lifts_trans, ext2_pair, ext2_unit/
 qed-.
 
-theorem liftsb_conf: â\88\80f1,I,I1. â¬\86*[f1] I â\89\98 I1 â\86\92 â\88\80f,I2. â¬\86*[f] I ≘ I2 →
-                     â\88\80f2. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f2] I1 ≘ I2.
+theorem liftsb_conf: â\88\80f1,I,I1. â\87§*[f1] I â\89\98 I1 â\86\92 â\88\80f,I2. â\87§*[f] I ≘ I2 →
+                     â\88\80f2. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f2] I1 ≘ I2.
 #f1 #I #I1 * -I -I1 #I [2: #V #V1 #HV1 ] #f2 #I2 #H
 [ elim (liftsb_inv_pair_sn … H) | lapply (liftsb_inv_unit_sn … H) ] -H
 /3 width=6 by lifts_conf, ext2_pair, ext2_unit/
index 033de1fb413ce0b776288b997c9cbd26109b5cac..50eaa5c60b5b7c911cd0bc8557340c707e210f88 100644 (file)
@@ -20,8 +20,8 @@ include "static_2/relocation/lifts_vector.ma".
 (* Main properties **********************************************************)
 
 (* Basic_1: includes: lifts_inj *)
-theorem liftsv_inj: â\88\80f,T1s,Us. â¬\86*[f] T1s ≘ Us →
-                    â\88\80T2s. â¬\86*[f] T2s ≘ Us → T1s = T2s.
+theorem liftsv_inj: â\88\80f,T1s,Us. â\87§*[f] T1s ≘ Us →
+                    â\88\80T2s. â\87§*[f] T2s ≘ Us → T1s = T2s.
 #f #T1s #Us #H elim H -T1s -Us
 [ #T2s #H >(liftsv_inv_nil2 … H) -H //
 | #T1s #Us #T1 #U #HT1U #_ #IHT1Us #X #H destruct
@@ -31,8 +31,8 @@ theorem liftsv_inj: ∀f,T1s,Us. ⬆*[f] T1s ≘ Us →
 qed-.
 
 (* Basic_2A1: includes: liftv_mono *)
-theorem liftsv_mono: â\88\80f,Ts,U1s. â¬\86*[f] Ts ≘ U1s →
-                     â\88\80U2s. â¬\86*[f] Ts ≘ U2s → U1s = U2s.
+theorem liftsv_mono: â\88\80f,Ts,U1s. â\87§*[f] Ts ≘ U1s →
+                     â\88\80U2s. â\87§*[f] Ts ≘ U2s → U1s = U2s.
 #f #Ts #U1s #H elim H -Ts -U1s
 [ #U2s #H >(liftsv_inv_nil1 … H) -H //
 | #Ts #U1s #T #U1 #HTU1 #_ #IHTU1s #X #H destruct
@@ -43,8 +43,8 @@ qed-.
 
 (* Basic_1: includes: lifts1_xhg (right to left) *)
 (* Basic_2A1: includes: liftsv_liftv_trans_le *)
-theorem liftsv_trans: â\88\80f1,T1s,Ts. â¬\86*[f1] T1s â\89\98 Ts â\86\92 â\88\80T2s,f2. â¬\86*[f2] Ts ≘ T2s →
-                      â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â¬\86*[f] T1s ≘ T2s.
+theorem liftsv_trans: â\88\80f1,T1s,Ts. â\87§*[f1] T1s â\89\98 Ts â\86\92 â\88\80T2s,f2. â\87§*[f2] Ts ≘ T2s →
+                      â\88\80f. f2 â\8a\9a f1 â\89\98 f â\86\92 â\87§*[f] T1s ≘ T2s.
 #f1 #T1s #Ts #H elim H -T1s -Ts
 [ #T2s #f2 #H >(liftsv_inv_nil1 … H) -T2s /2 width=3 by liftsv_nil/
 | #T1s #Ts #T1 #T #HT1 #_ #IHT1s #X #f2 #H elim (liftsv_inv_cons1 … H) -H
index 115a0b4739712a5b9c4063da5ac025b9f0ea31b0..4a01cd1ff2cb56c7bb8b973a657f0c3a9d576062 100644 (file)
@@ -20,13 +20,13 @@ include "static_2/relocation/lifts.ma".
 (* Forward lemmas with simple terms *****************************************)
 
 (* Basic_2A1: includes: lift_simple_dx *)
-lemma lifts_simple_dx: â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 → 𝐒⦃T1⦄ → 𝐒⦃T2⦄.
+lemma lifts_simple_dx: â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 → 𝐒⦃T1⦄ → 𝐒⦃T2⦄.
 #f #T1 #T2 #H elim H -f -T1 -T2 //
 #f #p #I #V1 #V2 #T1 #T2 #_ #_ #_ #_ #H elim (simple_inv_bind … H)
 qed-.
 
 (* Basic_2A1: includes: lift_simple_sn *)
-lemma lifts_simple_sn: â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 → 𝐒⦃T2⦄ → 𝐒⦃T1⦄.
+lemma lifts_simple_sn: â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 → 𝐒⦃T2⦄ → 𝐒⦃T1⦄.
 #f #T1 #T2 #H elim H -f -T1 -T2 //
 #f #p #I #V1 #V2 #T1 #T2 #_ #_ #_ #_ #H elim (simple_inv_bind … H)
 qed-.
index c76781d117fcfb7ecf7a04f265aea2eef98c4a69..3485e88cd57655fddbb7b6e9a2600855290a402a 100644 (file)
@@ -72,7 +72,7 @@ lemma tdeq_inv_lifts_bi: deliftable2_bi tdeq.
 /3 width=6 by tdeq_inv_lifts_sn, deliftable2_sn_bi/ qed-.
 
 lemma tdeq_lifts_inv_pair_sn (I) (f:rtmap):
-                             â\88\80X,T. â¬\86*[f]X ≘ T → ∀V. ②{I}V.T ≛ X → ⊥.
+                             â\88\80X,T. â\87§*[f]X ≘ T → ∀V. ②{I}V.T ≛ X → ⊥.
 #I #f #X #T #H elim H -f -X -T
 [ #f #s #V #H
   elim (tdeq_inv_pair1 … H) -H #X1 #X2 #_ #_ #H destruct
index addd91c72cce3e386302d3cf32ad357b8715907f..f314e2b81ccc0d13850772421a494f6d8d54c476 100644 (file)
@@ -97,7 +97,7 @@ lemma tweq_inv_lifts_bi: deliftable2_bi tweq.
 qed-.
 
 lemma tweq_inv_abbr_pos_x_lifts_y_y (T) (f:rtmap):
-      â\88\80V,U. +â\93\93V.U â\89\85 T â\86\92 â¬\86*[f]T ≘ U → ⊥.
+      â\88\80V,U. +â\93\93V.U â\89\85 T â\86\92 â\87§*[f]T ≘ U → ⊥.
 @(f_ind … tw) #n #IH #T #Hn #f #V #U #H1 #H2 destruct
 elim (tweq_inv_abbr_pos_sn … H1) -H1 #X1 #X2 #HX2 #H destruct -V
 elim (lifts_inv_bind1 … H2) -H2 #Y1 #Y2 #_ #HXY2 #H destruct
index 4721eafe0072c3742e19d7cd746094711e747799..f424d38eae4842054661e8da956375eedb2b7fe2 100644 (file)
@@ -21,7 +21,7 @@ include "static_2/relocation/lifts.ma".
 inductive liftsv (f:rtmap): relation (list term) ≝
 | liftsv_nil : liftsv f (Ⓔ) (Ⓔ)
 | liftsv_cons: ∀T1s,T2s,T1,T2.
-               â¬\86*[f] T1 ≘ T2 → liftsv f T1s T2s →
+               â\87§*[f] T1 ≘ T2 → liftsv f T1s T2s →
                liftsv f (T1 ⨮ T1s) (T2 ⨮ T2s)
 .
 
@@ -33,18 +33,18 @@ interpretation "generic relocation (term vector)"
 
 (* Basic inversion lemmas ***************************************************)
 
-fact liftsv_inv_nil1_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → X = Ⓔ → Y = Ⓔ.
+fact liftsv_inv_nil1_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → X = Ⓔ → Y = Ⓔ.
 #f #X #Y * -X -Y //
 #T1s #T2s #T1 #T2 #_ #_ #H destruct
 qed-.
 
 (* Basic_2A1: includes: liftv_inv_nil1 *)
-lemma liftsv_inv_nil1: â\88\80f,Y. â¬\86*[f] Ⓔ ≘ Y → Y = Ⓔ.
+lemma liftsv_inv_nil1: â\88\80f,Y. â\87§*[f] Ⓔ ≘ Y → Y = Ⓔ.
 /2 width=5 by liftsv_inv_nil1_aux/ qed-.
 
-fact liftsv_inv_cons1_aux: â\88\80f:rtmap. â\88\80X,Y. â¬\86*[f] X ≘ Y →
+fact liftsv_inv_cons1_aux: â\88\80f:rtmap. â\88\80X,Y. â\87§*[f] X ≘ Y →
                            ∀T1,T1s. X = T1 ⨮ T1s →
-                           â\88\83â\88\83T2,T2s. â¬\86*[f] T1 â\89\98 T2 & â¬\86*[f] T1s ≘ T2s &
+                           â\88\83â\88\83T2,T2s. â\87§*[f] T1 â\89\98 T2 & â\87§*[f] T1s ≘ T2s &
                                      Y = T2 ⨮ T2s.
 #f #X #Y * -X -Y
 [ #U1 #U1s #H destruct
@@ -53,22 +53,22 @@ fact liftsv_inv_cons1_aux: ∀f:rtmap. ∀X,Y. ⬆*[f] X ≘ Y →
 qed-.
 
 (* Basic_2A1: includes: liftv_inv_cons1 *)
-lemma liftsv_inv_cons1: â\88\80f:rtmap. â\88\80T1,T1s,Y. â¬\86*[f] T1 ⨮ T1s ≘ Y →
-                        â\88\83â\88\83T2,T2s. â¬\86*[f] T1 â\89\98 T2 & â¬\86*[f] T1s ≘ T2s &
+lemma liftsv_inv_cons1: â\88\80f:rtmap. â\88\80T1,T1s,Y. â\87§*[f] T1 ⨮ T1s ≘ Y →
+                        â\88\83â\88\83T2,T2s. â\87§*[f] T1 â\89\98 T2 & â\87§*[f] T1s ≘ T2s &
                                   Y = T2 ⨮ T2s.
 /2 width=3 by liftsv_inv_cons1_aux/ qed-.
 
-fact liftsv_inv_nil2_aux: â\88\80f,X,Y. â¬\86*[f] X ≘ Y → Y = Ⓔ → X = Ⓔ.
+fact liftsv_inv_nil2_aux: â\88\80f,X,Y. â\87§*[f] X ≘ Y → Y = Ⓔ → X = Ⓔ.
 #f #X #Y * -X -Y //
 #T1s #T2s #T1 #T2 #_ #_ #H destruct
 qed-.
 
-lemma liftsv_inv_nil2: â\88\80f,X. â¬\86*[f] X ≘ Ⓔ → X = Ⓔ.
+lemma liftsv_inv_nil2: â\88\80f,X. â\87§*[f] X ≘ Ⓔ → X = Ⓔ.
 /2 width=5 by liftsv_inv_nil2_aux/ qed-.
 
-fact liftsv_inv_cons2_aux: â\88\80f:rtmap. â\88\80X,Y. â¬\86*[f] X ≘ Y →
+fact liftsv_inv_cons2_aux: â\88\80f:rtmap. â\88\80X,Y. â\87§*[f] X ≘ Y →
                            ∀T2,T2s. Y = T2 ⨮ T2s →
-                           â\88\83â\88\83T1,T1s. â¬\86*[f] T1 â\89\98 T2 & â¬\86*[f] T1s ≘ T2s &
+                           â\88\83â\88\83T1,T1s. â\87§*[f] T1 â\89\98 T2 & â\87§*[f] T1s ≘ T2s &
                                      X = T1 ⨮ T1s.
 #f #X #Y * -X -Y
 [ #U2 #U2s #H destruct
@@ -76,14 +76,14 @@ fact liftsv_inv_cons2_aux: ∀f:rtmap. ∀X,Y. ⬆*[f] X ≘ Y →
 ]
 qed-.
 
-lemma liftsv_inv_cons2: â\88\80f:rtmap. â\88\80X,T2,T2s. â¬\86*[f] X ≘ T2 ⨮ T2s →
-                        â\88\83â\88\83T1,T1s. â¬\86*[f] T1 â\89\98 T2 & â¬\86*[f] T1s ≘ T2s &
+lemma liftsv_inv_cons2: â\88\80f:rtmap. â\88\80X,T2,T2s. â\87§*[f] X ≘ T2 ⨮ T2s →
+                        â\88\83â\88\83T1,T1s. â\87§*[f] T1 â\89\98 T2 & â\87§*[f] T1s ≘ T2s &
                                   X = T1 ⨮ T1s.
 /2 width=3 by liftsv_inv_cons2_aux/ qed-.
 
 (* Basic_1: was: lifts1_flat (left to right) *)
-lemma lifts_inv_applv1: â\88\80f:rtmap. â\88\80V1s,U1,T2. â¬\86*[f] Ⓐ V1s.U1 ≘ T2 →
-                        â\88\83â\88\83V2s,U2. â¬\86*[f] V1s â\89\98 V2s & â¬\86*[f] U1 ≘ U2 &
+lemma lifts_inv_applv1: â\88\80f:rtmap. â\88\80V1s,U1,T2. â\87§*[f] Ⓐ V1s.U1 ≘ T2 →
+                        â\88\83â\88\83V2s,U2. â\87§*[f] V1s â\89\98 V2s & â\87§*[f] U1 ≘ U2 &
                                   T2 = Ⓐ V2s.U2.
 #f #V1s elim V1s -V1s
 [ /3 width=5 by ex3_2_intro, liftsv_nil/
@@ -93,8 +93,8 @@ lemma lifts_inv_applv1: ∀f:rtmap. ∀V1s,U1,T2. ⬆*[f] Ⓐ V1s.U1 ≘ T2 →
 ]
 qed-.
 
-lemma lifts_inv_applv2: â\88\80f:rtmap. â\88\80V2s,U2,T1. â¬\86*[f] T1 ≘ Ⓐ V2s.U2 →
-                        â\88\83â\88\83V1s,U1. â¬\86*[f] V1s â\89\98 V2s & â¬\86*[f] U1 ≘ U2 &
+lemma lifts_inv_applv2: â\88\80f:rtmap. â\88\80V2s,U2,T1. â\87§*[f] T1 ≘ Ⓐ V2s.U2 →
+                        â\88\83â\88\83V1s,U1. â\87§*[f] V1s â\89\98 V2s & â\87§*[f] U1 ≘ U2 &
                                   T1 = Ⓐ V1s.U1.
 #f #V2s elim V2s -V2s
 [ /3 width=5 by ex3_2_intro, liftsv_nil/
@@ -107,7 +107,7 @@ qed-.
 (* Basic properties *********************************************************)
 
 (* Basic_2A1: includes: liftv_total *)
-lemma liftsv_total: â\88\80f. â\88\80T1s:list term. â\88\83T2s. â¬\86*[f] T1s ≘ T2s.
+lemma liftsv_total: â\88\80f. â\88\80T1s:list term. â\88\83T2s. â\87§*[f] T1s ≘ T2s.
 #f #T1s elim T1s -T1s
 [ /2 width=2 by liftsv_nil, ex_intro/
 | #T1 #T1s * #T2s #HT12s
@@ -116,15 +116,15 @@ lemma liftsv_total: ∀f. ∀T1s:list term. ∃T2s. ⬆*[f] T1s ≘ T2s.
 qed-.
 
 (* Basic_1: was: lifts1_flat (right to left) *)
-lemma lifts_applv: â\88\80f:rtmap. â\88\80V1s,V2s. â¬\86*[f] V1s ≘ V2s →
-                   â\88\80T1,T2. â¬\86*[f] T1 ≘ T2 →
-                   â¬\86*[f] Ⓐ V1s.T1 ≘ Ⓐ V2s.T2.
+lemma lifts_applv: â\88\80f:rtmap. â\88\80V1s,V2s. â\87§*[f] V1s ≘ V2s →
+                   â\88\80T1,T2. â\87§*[f] T1 ≘ T2 →
+                   â\87§*[f] Ⓐ V1s.T1 ≘ Ⓐ V2s.T2.
 #f #V1s #V2s #H elim H -V1s -V2s /3 width=1 by lifts_flat/
 qed.
 
-lemma liftsv_split_trans: â\88\80f,T1s,T2s. â¬\86*[f] T1s ≘ T2s →
+lemma liftsv_split_trans: â\88\80f,T1s,T2s. â\87§*[f] T1s ≘ T2s →
                           ∀f1,f2. f2 ⊚ f1 ≘ f →
-                          â\88\83â\88\83Ts. â¬\86*[f1] T1s â\89\98 Ts & â¬\86*[f2] Ts ≘ T2s.
+                          â\88\83â\88\83Ts. â\87§*[f1] T1s â\89\98 Ts & â\87§*[f2] Ts ≘ T2s.
 #f #T1s #T2s #H elim H -T1s -T2s
 [ /2 width=3 by liftsv_nil, ex2_intro/
 | #T1s #T2s #T1 #T2 #HT12 #_ #IH #f1 #f2 #Hf
index 358660fe2eb14e0a7fd2e58fdddf767ddb0ba8bd..e3830a0ac99c0e34d9bcab7c984ffea6902229ea 100644 (file)
@@ -20,6 +20,6 @@ include "static_2/relocation/lifts.ma".
 (* Forward lemmas with weight for terms *************************************)
 
 (* Basic_2A1: includes: lift_fwd_tw *)
-lemma lifts_fwd_tw: â\88\80f,T1,T2. â¬\86*[f] T1 ≘ T2 → ♯{T1} = ♯{T2}.
+lemma lifts_fwd_tw: â\88\80f,T1,T2. â\87§*[f] T1 ≘ T2 → ♯{T1} = ♯{T2}.
 #f #T1 #T2 #H elim H -f -T1 -T2 normalize //
 qed-.
index 62135a02775693683717adc9cb82f25d2acd249e..3d1bef200566eb91c606564337c8c70a53f988a7 100644 (file)
@@ -20,6 +20,6 @@ include "static_2/relocation/lifts_bind.ma".
 
 (* Forward lemmas with weight for binders ***********************************)
 
-lemma liftsb_fwd_bw: â\88\80f,I1,I2. â¬\86*[f] I1 ≘ I2 → ♯{I1} = ♯{I2}.
+lemma liftsb_fwd_bw: â\88\80f,I1,I2. â\87§*[f] I1 ≘ I2 → ♯{I1} = ♯{I2}.
 #f #I1 #I2 * -I1 -I2 /2 width=2 by lifts_fwd_tw/
 qed-.
index c1954b1a789f00b113efbbd08973972c36a51afd..239966181fd18c1e0adf4cc34c0f5b9e2de3b741 100644 (file)
@@ -21,8 +21,8 @@ include "static_2/relocation/drops.ma".
 
 theorem sex_trans_gen (RN1) (RP1) (RN2) (RP2) (RN) (RP):
                       ∀L1,f.
-                      (â\88\80g,I,K,n. â¬\87*[n] L1 ≘ K.ⓘ{I} → ↑g = ⫱*[n] f → sex_transitive RN1 RN2 RN RN1 RP1 g K I) →
-                      (â\88\80g,I,K,n. â¬\87*[n] L1 ≘ K.ⓘ{I} → ⫯g = ⫱*[n] f → sex_transitive RP1 RP2 RP RN1 RP1 g K I) →
+                      (â\88\80g,I,K,n. â\87©*[n] L1 ≘ K.ⓘ{I} → ↑g = ⫱*[n] f → sex_transitive RN1 RN2 RN RN1 RP1 g K I) →
+                      (â\88\80g,I,K,n. â\87©*[n] L1 ≘ K.ⓘ{I} → ⫯g = ⫱*[n] f → sex_transitive RP1 RP2 RP RN1 RP1 g K I) →
                       ∀L0. L1 ⪤[RN1,RP1,f] L0 →
                       ∀L2. L0 ⪤[RN2,RP2,f] L2 →
                       L1 ⪤[RN,RP,f] L2.
@@ -62,8 +62,8 @@ qed-.
 
 theorem sex_conf (RN1) (RP1) (RN2) (RP2):
                  ∀L,f.
-                 (â\88\80g,I,K,n. â¬\87*[n] L ≘ K.ⓘ{I} → ↑g = ⫱*[n] f → R_pw_confluent2_sex RN1 RN2 RN1 RP1 RN2 RP2 g K I) →
-                 (â\88\80g,I,K,n. â¬\87*[n] L ≘ K.ⓘ{I} → ⫯g = ⫱*[n] f → R_pw_confluent2_sex RP1 RP2 RN1 RP1 RN2 RP2 g K I) →
+                 (â\88\80g,I,K,n. â\87©*[n] L ≘ K.ⓘ{I} → ↑g = ⫱*[n] f → R_pw_confluent2_sex RN1 RN2 RN1 RP1 RN2 RP2 g K I) →
+                 (â\88\80g,I,K,n. â\87©*[n] L ≘ K.ⓘ{I} → ⫯g = ⫱*[n] f → R_pw_confluent2_sex RP1 RP2 RN1 RP1 RN2 RP2 g K I) →
                  pw_confluent2 … (sex RN1 RP1 f) (sex RN2 RP2 f) L.
 #RN1 #RP1 #RN2 #RP2 #L elim L -L
 [ #f #_ #_ #L1 #H1 #L2 #H2 >(sex_inv_atom1 … H1) >(sex_inv_atom1 … H2) -H2 -H1
index 28cfb9ce0c5c928cfea1bb6f6b06a67af7c038c8..1f21d404ef32fbdc70ff20e02bf3863e8d009a06 100644 (file)
@@ -86,7 +86,7 @@ qed-.
 (* Advanced properties ******************************************************)
 
 lemma fqup_zeta (b) (p) (I) (G) (K) (V):
-                â\88\80T1,T2. â¬\86*[1]T2 ≘ T1 → ⦃G,K,ⓑ{p,I}V.T1⦄ ⬂+[b] ⦃G,K,T2⦄.
+                â\88\80T1,T2. â\87§*[1]T2 ≘ T1 → ⦃G,K,ⓑ{p,I}V.T1⦄ ⬂+[b] ⦃G,K,T2⦄.
 * /4 width=5 by fqup_strap2, fqu_fqup, fqu_drop, fqu_clear, fqu_bind_dx/ qed.
 
 (* Basic_2A1: removed theorems 1: fqup_drop *)
index c21d46c6026be363201aa91140a85b6e272829f8..e72eced2edd079543a47ddbce414bab3a2f5f65c 100644 (file)
@@ -19,7 +19,7 @@ include "static_2/s_computation/fqup.ma".
 
 (* Properties with generic slicing for local environments *******************)
 
-lemma fqup_drops_succ: â\88\80b,G,K,T,i,L,U. â¬\87*[â\86\91i] L â\89\98 K â\86\92 â¬\86*[↑i] T ≘ U →
+lemma fqup_drops_succ: â\88\80b,G,K,T,i,L,U. â\87©*[â\86\91i] L â\89\98 K â\86\92 â\87§*[↑i] T ≘ U →
                        ⦃G,L,U⦄ ⬂+[b] ⦃G,K,T⦄.
 #b #G #K #T #i elim i -i
 [ #L #U #HLK #HTU elim (drops_inv_succ … HLK) -HLK
@@ -32,7 +32,7 @@ lemma fqup_drops_succ: ∀b,G,K,T,i,L,U. ⬇*[↑i] L ≘ K → ⬆*[↑i] T ≘
 ]
 qed.
 
-lemma fqup_drops_strap1: â\88\80b,G1,G2,L1,K1,K2,T1,T2,U1,i. â¬\87*[i] L1 â\89\98 K1 â\86\92 â¬\86*[i] T1 ≘ U1 →
+lemma fqup_drops_strap1: â\88\80b,G1,G2,L1,K1,K2,T1,T2,U1,i. â\87©*[i] L1 â\89\98 K1 â\86\92 â\87§*[i] T1 ≘ U1 →
                          ⦃G1,K1,T1⦄ ⬂[b] ⦃G2,K2,T2⦄ → ⦃G1,L1,U1⦄ ⬂+[b] ⦃G2,K2,T2⦄.
 #b #G1 #G2 #L1 #K1 #K2 #T1 #T2 #U1 *
 [ #HLK1 #HTU1 #HT12
@@ -42,5 +42,5 @@ lemma fqup_drops_strap1: ∀b,G1,G2,L1,K1,K2,T1,T2,U1,i. ⬇*[i] L1 ≘ K1 → 
 ]
 qed-.
 
-lemma fqup_lref: â\88\80b,I,G,L,K,V,i. â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,L,#i⦄ ⬂+[b] ⦃G,K,V⦄.
+lemma fqup_lref: â\88\80b,I,G,L,K,V,i. â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,L,#i⦄ ⬂+[b] ⦃G,K,V⦄.
 /2 width=6 by fqup_drops_strap1/ qed.
index d1183daff751761d5b9dc82127d237223f3bb4a6..cafcd5933d3a93be3326273ed69500c8d8608ece 100644 (file)
@@ -98,7 +98,7 @@ lemma fqus_inv_bind1: ∀b,p,I,G1,G2,L1,L2,V1,T1,T2. ⦃G1,L1,ⓑ{p,I}V1.T1⦄ 
                        | ⦃G1,L1,V1⦄ ⬂*[b] ⦃G2,L2,T2⦄
                        | ∧∧ ⦃G1,L1.ⓑ{I}V1,T1⦄ ⬂*[b] ⦃G2,L2,T2⦄ & b = Ⓣ 
                        | ∧∧ ⦃G1,L1.ⓧ,T1⦄ ⬂*[b] ⦃G2,L2,T2⦄ & b = Ⓕ
-                       | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82*[b] â¦\83G2,L2,T2â¦\84 & â¬\86*[1] T ≘ ⓑ{p,I}V1.T1 & L1 = L.ⓘ{J}.
+                       | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82*[b] â¦\83G2,L2,T2â¦\84 & â\87§*[1] T ≘ ⓑ{p,I}V1.T1 & L1 = L.ⓘ{J}.
 #b #p #I #G1 #G2 #L1 #L2 #V1 #T1 #T2 #H elim (fqus_inv_fqu_sn … H) -H * /3 width=1 by and3_intro, or5_intro0/
 #G #L #T #H elim (fqu_inv_bind1 … H) -H *
 [4: #J ] #H1 #H2 #H3 [3,4: #Hb ] #H destruct
@@ -110,7 +110,7 @@ lemma fqus_inv_bind1_true: ∀p,I,G1,G2,L1,L2,V1,T1,T2. ⦃G1,L1,ⓑ{p,I}V1.T1
                            ∨∨ ∧∧ G1 = G2 & L1 = L2 & ⓑ{p,I}V1.T1 = T2
                                | ⦃G1,L1,V1⦄ ⬂* ⦃G2,L2,T2⦄
                                | ⦃G1,L1.ⓑ{I}V1,T1⦄ ⬂* ⦃G2,L2,T2⦄
-                               | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82* â¦\83G2,L2,T2â¦\84 & â¬\86*[1] T ≘ ⓑ{p,I}V1.T1 & L1 = L.ⓘ{J}.
+                               | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82* â¦\83G2,L2,T2â¦\84 & â\87§*[1] T ≘ ⓑ{p,I}V1.T1 & L1 = L.ⓘ{J}.
 #p #I #G1 #G2 #L1 #L2 #V1 #T1 #T2 #H elim (fqus_inv_bind1 … H) -H [1,3,4: * ]
 /3 width=1 by and3_intro, or4_intro0, or4_intro1, or4_intro2, or4_intro3/
 #_ #H destruct
@@ -120,7 +120,7 @@ lemma fqus_inv_flat1: ∀b,I,G1,G2,L1,L2,V1,T1,T2. ⦃G1,L1,ⓕ{I}V1.T1⦄ ⬂*[
                       ∨∨ ∧∧ G1 = G2 & L1 = L2 & ⓕ{I}V1.T1 = T2
                        | ⦃G1,L1,V1⦄ ⬂*[b] ⦃G2,L2,T2⦄
                        | ⦃G1,L1,T1⦄ ⬂*[b] ⦃G2,L2,T2⦄
-                       | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82*[b] â¦\83G2,L2,T2â¦\84 & â¬\86*[1] T ≘ ⓕ{I}V1.T1 & L1 = L.ⓘ{J}.
+                       | â\88\83â\88\83J,L,T. â¦\83G1,L,Tâ¦\84 â¬\82*[b] â¦\83G2,L2,T2â¦\84 & â\87§*[1] T ≘ ⓕ{I}V1.T1 & L1 = L.ⓘ{J}.
 #b #I #G1 #G2 #L1 #L2 #V1 #T1 #T2 #H elim (fqus_inv_fqu_sn … H) -H * /3 width=1 by and3_intro, or4_intro0/
 #G #L #T #H elim (fqu_inv_flat1 … H) -H *
 [3: #J ] #H1 #H2 #H3 #H destruct
index 24ba92a09c499df96a40bc98178744e5ad180d94..688995d1cbfab6698e26fef5836b1f9bb1d3f213 100644 (file)
@@ -19,7 +19,7 @@ include "static_2/s_computation/fqus_fqup.ma".
 
 (* Properties with generic slicing for local environments *******************)
 
-lemma fqus_drops: â\88\80b,G,L,K,T,U,i. â¬\87*[i] L â\89\98 K â\86\92 â¬\86*[i] T ≘ U →
+lemma fqus_drops: â\88\80b,G,L,K,T,U,i. â\87©*[i] L â\89\98 K â\86\92 â\87§*[i] T ≘ U →
                   ⦃G,L,U⦄ ⬂*[b] ⦃G,K,T⦄.
 #b #G #L #K #T #U * /3 width=3 by fqup_drops_succ, fqup_fqus/
 #HLK #HTU <(lifts_fwd_isid … HTU) -U // <(drops_fwd_isid … HLK) -K //
index 19dd4d45d0ab14148dbe2405d4f50b2b57ca9615..8fa1c357e659e29335772eb8047dc36125b322ca 100644 (file)
@@ -31,7 +31,7 @@ inductive fqu (b:bool): tri_relation genv lenv term ≝
 | fqu_bind_dx: ∀p,I,G,L,V,T. b = Ⓣ → fqu b G L (ⓑ{p,I}V.T) G (L.ⓑ{I}V) T
 | fqu_clear  : ∀p,I,G,L,V,T. b = Ⓕ → fqu b G L (ⓑ{p,I}V.T) G (L.ⓧ) T
 | fqu_flat_dx: ∀I,G,L,V,T. fqu b G L (ⓕ{I}V.T) G L T
-| fqu_drop   : â\88\80I,G,L,T,U. â¬\86*[1] T ≘ U → fqu b G (L.ⓘ{I}) U G L T
+| fqu_drop   : â\88\80I,G,L,T,U. â\87§*[1] T ≘ U → fqu b G (L.ⓘ{I}) U G L T
 .
 
 interpretation
@@ -116,7 +116,7 @@ fact fqu_inv_bind1_aux: ∀b,G1,G2,L1,L2,T1,T2. ⦃G1,L1,T1⦄ ⬂[b] ⦃G2,L2,T
                         ∨∨ ∧∧ G1 = G2 & L1 = L2 & V1 = T2
                          | ∧∧ G1 = G2 & L1.ⓑ{I}V1 = L2 & U1 = T2 & b = Ⓣ
                          | ∧∧ G1 = G2 & L1.ⓧ = L2 & U1 = T2 & b = Ⓕ
-                         | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â¬\86*[1] T2 ≘ ⓑ{p,I}V1.U1.
+                         | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â\87§*[1] T2 ≘ ⓑ{p,I}V1.U1.
 #b #G1 #G2 #L1 #L2 #T1 #T2 * -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G #L #T #q #J #V0 #U0 #H destruct
 | #I #G #L #V #T #q #J #V0 #U0 #H destruct /3 width=1 by and3_intro, or4_intro0/
@@ -131,13 +131,13 @@ lemma fqu_inv_bind1: ∀b,p,I,G1,G2,L1,L2,V1,U1,T2. ⦃G1,L1,ⓑ{p,I}V1.U1⦄ 
                      ∨∨ ∧∧ G1 = G2 & L1 = L2 & V1 = T2
                       | ∧∧ G1 = G2 & L1.ⓑ{I}V1 = L2 & U1 = T2 & b = Ⓣ
                       | ∧∧ G1 = G2 & L1.ⓧ = L2 & U1 = T2 & b = Ⓕ
-                      | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â¬\86*[1] T2 ≘ ⓑ{p,I}V1.U1.
+                      | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â\87§*[1] T2 ≘ ⓑ{p,I}V1.U1.
 /2 width=4 by fqu_inv_bind1_aux/ qed-.
 
 lemma fqu_inv_bind1_true: ∀p,I,G1,G2,L1,L2,V1,U1,T2. ⦃G1,L1,ⓑ{p,I}V1.U1⦄ ⬂ ⦃G2,L2,T2⦄ →
                           ∨∨ ∧∧ G1 = G2 & L1 = L2 & V1 = T2
                            | ∧∧ G1 = G2 & L1.ⓑ{I}V1 = L2 & U1 = T2
-                           | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â¬\86*[1] T2 ≘ ⓑ{p,I}V1.U1.
+                           | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â\87§*[1] T2 ≘ ⓑ{p,I}V1.U1.
 #p #I #G1 #G2 #L1 #L2 #V1 #U1 #T2 #H elim (fqu_inv_bind1 … H) -H
 /3 width=1 by or3_intro0, or3_intro2/
 * #HG #HL #HU #H destruct
@@ -148,7 +148,7 @@ fact fqu_inv_flat1_aux: ∀b,G1,G2,L1,L2,T1,T2. ⦃G1,L1,T1⦄ ⬂[b] ⦃G2,L2,T
                         ∀I,V1,U1. T1 = ⓕ{I}V1.U1 →
                         ∨∨ ∧∧ G1 = G2 & L1 = L2 & V1 = T2
                          | ∧∧ G1 = G2 & L1 = L2 & U1 = T2
-                         | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â¬\86*[1] T2 ≘ ⓕ{I}V1.U1.
+                         | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â\87§*[1] T2 ≘ ⓕ{I}V1.U1.
 #b #G1 #G2 #L1 #L2 #T1 #T2 * -G1 -G2 -L1 -L2 -T1 -T2
 [ #I #G #L #T #J #V0 #U0 #H destruct
 | #I #G #L #V #T #J #V0 #U0 #H destruct /3 width=1 by and3_intro, or3_intro0/
@@ -162,7 +162,7 @@ qed-.
 lemma fqu_inv_flat1: ∀b,I,G1,G2,L1,L2,V1,U1,T2. ⦃G1,L1,ⓕ{I}V1.U1⦄ ⬂[b] ⦃G2,L2,T2⦄ →
                      ∨∨ ∧∧ G1 = G2 & L1 = L2 & V1 = T2
                       | ∧∧ G1 = G2 & L1 = L2 & U1 = T2
-                      | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â¬\86*[1] T2 ≘ ⓕ{I}V1.U1.
+                      | â\88\83â\88\83J. G1 = G2 & L1 = L2.â\93\98{J} & â\87§*[1] T2 ≘ ⓕ{I}V1.U1.
 /2 width=4 by fqu_inv_flat1_aux/ qed-.
 
 (* Advanced inversion lemmas ************************************************)
index b04f0c05f296b6511eca2601095aa9c0ea026112..071e044752359299b10c14a54f807487411d0f2c 100644 (file)
@@ -22,7 +22,7 @@ include "static_2/static/aaa.ma".
 (* Advanced properties ******************************************************)
 
 (* Basic_2A1: was: aaa_lref *)
-lemma aaa_lref_drops: â\88\80I,G,K,V,B,i,L. â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⁝ B → ⦃G,L⦄ ⊢ #i ⁝ B.
+lemma aaa_lref_drops: â\88\80I,G,K,V,B,i,L. â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⁝ B → ⦃G,L⦄ ⊢ #i ⁝ B.
 #I #G #K #V #B #i elim i -i
 [ #L #H lapply (drops_fwd_isid … H ?) -H //
   #H destruct /2 width=1 by aaa_zero/
@@ -35,7 +35,7 @@ qed.
 
 (* Basic_2A1: was: aaa_inv_lref *)
 lemma aaa_inv_lref_drops: ∀G,A,i,L. ⦃G,L⦄ ⊢ #i ⁝ A →
-                          â\88\83â\88\83I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ V ⁝ A.
+                          â\88\83â\88\83I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V & ⦃G,K⦄ ⊢ V ⁝ A.
 #G #A #i elim i -i
 [ #L #H elim (aaa_inv_zero … H) -H /3 width=5 by drops_refl, ex2_3_intro/
 | #i #IH #L #H elim (aaa_inv_lref … H) -H
@@ -44,7 +44,7 @@ lemma aaa_inv_lref_drops: ∀G,A,i,L. ⦃G,L⦄ ⊢ #i ⁝ A →
 qed-.
 
 lemma aaa_pair_inv_lref (G) (L) (i):
-      â\88\80A. â¦\83G,Lâ¦\84 â\8a¢ #i â\81\9d A â\86\92 â\88\80I,K,V. â¬\87*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⁝ A.
+      â\88\80A. â¦\83G,Lâ¦\84 â\8a¢ #i â\81\9d A â\86\92 â\88\80I,K,V. â\87©*[i] L ≘ K.ⓑ{I}V → ⦃G,K⦄ ⊢ V ⁝ A.
 #G #L #i #A #H #I #K #V #HLK
 elim (aaa_inv_lref_drops … H) -H #J #Y #X #HLY #HX
 lapply (drops_mono … HLY … HLK) -L -i #H destruct //
@@ -54,8 +54,8 @@ qed-.
 
 (* Basic_2A1: includes: aaa_lift *)
 (* Note: it should use drops_split_trans_pair2 *)
-lemma aaa_lifts: â\88\80G,L1,T1,A. â¦\83G,L1â¦\84 â\8a¢ T1 â\81\9d A â\86\92 â\88\80b,f,L2. â¬\87*[b,f] L2 ≘ L1 →
-                 â\88\80T2. â¬\86*[f] T1 ≘ T2 → ⦃G,L2⦄ ⊢ T2 ⁝ A.
+lemma aaa_lifts: â\88\80G,L1,T1,A. â¦\83G,L1â¦\84 â\8a¢ T1 â\81\9d A â\86\92 â\88\80b,f,L2. â\87©*[b,f] L2 ≘ L1 →
+                 â\88\80T2. â\87§*[f] T1 ≘ T2 → ⦃G,L2⦄ ⊢ T2 ⁝ A.
 @(fqup_wf_ind_eq (Ⓣ)) #G0 #L0 #T0 #IH #G #L1 * *
 [ #s #HG #HL #HT #A #H #b #f #L2 #HL21 #X #HX -b -IH
   lapply (aaa_inv_sort … H) -H #H destruct
@@ -93,8 +93,8 @@ qed-.
 (* Inversion lemmas with generic slicing for local environments *************)
 
 (* Basic_2A1: includes: aaa_inv_lift *)
-lemma aaa_inv_lifts: â\88\80G,L2,T2,A. â¦\83G,L2â¦\84 â\8a¢ T2 â\81\9d A â\86\92 â\88\80b,f,L1. â¬\87*[b,f] L2 ≘ L1 →
-                     â\88\80T1. â¬\86*[f] T1 ≘ T2 → ⦃G,L1⦄ ⊢ T1 ⁝ A.
+lemma aaa_inv_lifts: â\88\80G,L2,T2,A. â¦\83G,L2â¦\84 â\8a¢ T2 â\81\9d A â\86\92 â\88\80b,f,L1. â\87©*[b,f] L2 ≘ L1 →
+                     â\88\80T1. â\87§*[f] T1 ≘ T2 → ⦃G,L1⦄ ⊢ T1 ⁝ A.
 @(fqup_wf_ind_eq (Ⓣ)) #G0 #L0 #T0 #IH #G #L2 * *
 [ #s #HG #HL #HT #A #H #b #f #L1 #HL21 #X #HX -b -IH
   lapply (aaa_inv_sort … H) -H #H destruct
index d936eda8129ec6a1f5a4458a27af71560157493f..5cbeaea872e3e67d2e52ac426decf4fdb92ff7e3 100644 (file)
@@ -21,7 +21,7 @@ include "static_2/static/frees_fqup.ma".
 (* Advanced properties ******************************************************)
 
 lemma frees_atom_drops: 
-      â\88\80b,L,i. â¬\87*[b,𝐔❴i❵] L ≘ ⋆ →
+      â\88\80b,L,i. â\87©*[b,𝐔❴i❵] L ≘ ⋆ →
       ∀f. 𝐈⦃f⦄ → L ⊢ 𝐅+⦃#i⦄ ≘ ⫯*[i]↑f.
 #b #L elim L -L /2 width=1 by frees_atom/
 #L #I #IH *
@@ -32,7 +32,7 @@ qed.
 
 lemma frees_pair_drops:
       ∀f,K,V. K ⊢ 𝐅+⦃V⦄ ≘ f → 
-      â\88\80i,I,L. â¬\87*[i] L ≘ K.ⓑ{I}V → L ⊢ 𝐅+⦃#i⦄ ≘ ⫯*[i] ↑f.
+      â\88\80i,I,L. â\87©*[i] L ≘ K.ⓑ{I}V → L ⊢ 𝐅+⦃#i⦄ ≘ ⫯*[i] ↑f.
 #f #K #V #Hf #i elim i -i
 [ #I #L #H lapply (drops_fwd_isid … H ?) -H /2 width=1 by frees_pair/
 | #i #IH #I #L #H elim (drops_inv_succ … H) -H /3 width=2 by frees_lref/
@@ -40,7 +40,7 @@ lemma frees_pair_drops:
 qed.
 
 lemma frees_unit_drops:
-      â\88\80f.  ð\9d\90\88â¦\83fâ¦\84 â\86\92 â\88\80I,K,i,L. â¬\87*[i] L ≘ K.ⓤ{I} →
+      â\88\80f.  ð\9d\90\88â¦\83fâ¦\84 â\86\92 â\88\80I,K,i,L. â\87©*[i] L ≘ K.ⓤ{I} →
       L ⊢ 𝐅+⦃#i⦄ ≘ ⫯*[i] ↑f.
 #f #Hf #I #K #i elim i -i
 [ #L #H lapply (drops_fwd_isid … H ?) -H /2 width=1 by frees_unit/
@@ -51,7 +51,7 @@ qed.
 (*
 lemma frees_sort_pushs:
       ∀f,K,s. K ⊢ 𝐅+⦃⋆s⦄ ≘ f →
-      â\88\80i,L. â¬\87*[i] L ≘ K → L ⊢ 𝐅+⦃⋆s⦄ ≘ ⫯*[i] f.
+      â\88\80i,L. â\87©*[i] L ≘ K → L ⊢ 𝐅+⦃⋆s⦄ ≘ ⫯*[i] f.
 #f #K #s #Hf #i elim i -i
 [ #L #H lapply (drops_fwd_isid … H ?) -H //
 | #i #IH #L #H elim (drops_inv_succ … H) -H /3 width=1 by frees_sort/
@@ -60,7 +60,7 @@ qed.
 *)
 lemma frees_lref_pushs:
       ∀f,K,j. K ⊢ 𝐅+⦃#j⦄ ≘ f →
-      â\88\80i,L. â¬\87*[i] L ≘ K → L ⊢ 𝐅+⦃#(i+j)⦄ ≘ ⫯*[i] f.
+      â\88\80i,L. â\87©*[i] L ≘ K → L ⊢ 𝐅+⦃#(i+j)⦄ ≘ ⫯*[i] f.
 #f #K #j #Hf #i elim i -i
 [ #L #H lapply (drops_fwd_isid … H ?) -H //
 | #i #IH #L #H elim (drops_inv_succ … H) -H
@@ -70,7 +70,7 @@ qed.
 (*
 lemma frees_gref_pushs:
       ∀f,K,l. K ⊢ 𝐅+⦃§l⦄ ≘ f →
-      â\88\80i,L. â¬\87*[i] L ≘ K → L ⊢ 𝐅+⦃§l⦄ ≘ ⫯*[i] f.
+      â\88\80i,L. â\87©*[i] L ≘ K → L ⊢ 𝐅+⦃§l⦄ ≘ ⫯*[i] f.
 #f #K #l #Hf #i elim i -i
 [ #L #H lapply (drops_fwd_isid … H ?) -H //
 | #i #IH #L #H elim (drops_inv_succ … H) -H /3 width=1 by frees_gref/
@@ -81,9 +81,9 @@ qed.
 
 lemma frees_inv_lref_drops:
       ∀L,i,f. L ⊢ 𝐅+⦃#i⦄ ≘ f →
-      â\88¨â\88¨ â\88\83â\88\83g. â¬\87*[Ⓕ,𝐔❴i❵] L ≘ ⋆ & 𝐈⦃g⦄ & f = ⫯*[i] ↑g
-       | â\88\83â\88\83g,I,K,V. K â\8a¢ ð\9d\90\85+â¦\83Vâ¦\84 â\89\98 g & â¬\87*[i] L ≘ K.ⓑ{I}V & f = ⫯*[i] ↑g
-       | â\88\83â\88\83g,I,K. â¬\87*[i] L ≘ K.ⓤ{I} & 𝐈⦃g⦄ & f = ⫯*[i] ↑g.
+      â\88¨â\88¨ â\88\83â\88\83g. â\87©*[Ⓕ,𝐔❴i❵] L ≘ ⋆ & 𝐈⦃g⦄ & f = ⫯*[i] ↑g
+       | â\88\83â\88\83g,I,K,V. K â\8a¢ ð\9d\90\85+â¦\83Vâ¦\84 â\89\98 g & â\87©*[i] L ≘ K.ⓑ{I}V & f = ⫯*[i] ↑g
+       | â\88\83â\88\83g,I,K. â\87©*[i] L ≘ K.ⓤ{I} & 𝐈⦃g⦄ & f = ⫯*[i] ↑g.
 #L elim L -L
 [ #i #g | #L #I #IH * [ #g cases I -I [ #I | #I #V ] -IH | #i #g ] ] #H
 [ elim (frees_inv_atom … H) -H #f #Hf #H destruct
@@ -105,7 +105,7 @@ qed-.
 
 lemma frees_lifts:
       ∀b,f1,K,T. K ⊢ 𝐅+⦃T⦄ ≘ f1 →
-      â\88\80f,L. â¬\87*[b,f] L â\89\98 K â\86\92 â\88\80U. â¬\86*[f] T ≘ U →
+      â\88\80f,L. â\87©*[b,f] L â\89\98 K â\86\92 â\88\80U. â\87§*[f] T ≘ U →
       ∀f2. f ~⊚ f1 ≘ f2 → L ⊢ 𝐅+⦃U⦄ ≘ f2.
 #b #f1 #K #T #H lapply (frees_fwd_isfin … H) elim H -f1 -K -T
 [ #f1 #K #s #Hf1 #_ #f #L #HLK #U #H2 #f2 #H3
@@ -162,7 +162,7 @@ lemma frees_lifts:
 qed-.
 
 lemma frees_lifts_SO:
-      â\88\80b,L,K. â¬\87*[b,ð\9d\90\94â\9d´1â\9dµ] L â\89\98 K â\86\92 â\88\80T,U. â¬\86*[1] T ≘ U →
+      â\88\80b,L,K. â\87©*[b,ð\9d\90\94â\9d´1â\9dµ] L â\89\98 K â\86\92 â\88\80T,U. â\87§*[1] T ≘ U →
       ∀f. K ⊢ 𝐅+⦃T⦄ ≘ f → L ⊢ 𝐅+⦃U⦄ ≘ ⫯f.
 #b #L #K #HLK #T #U #HTU #f #Hf
 @(frees_lifts b … Hf … HTU) //  (**) (* auto fails *)
@@ -172,7 +172,7 @@ qed.
 
 lemma frees_fwd_coafter:
       ∀b,f2,L,U. L ⊢ 𝐅+⦃U⦄ ≘ f2 →
-      â\88\80f,K. â¬\87*[b,f] L â\89\98 K â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
+      â\88\80f,K. â\87©*[b,f] L â\89\98 K â\86\92 â\88\80T. â\87§*[f] T ≘ U →
       ∀f1. K ⊢ 𝐅+⦃T⦄ ≘ f1 → f ~⊚ f1 ≘ f2.
 /4 width=11 by frees_lifts, frees_mono, coafter_eq_repl_back0/ qed-.
 
@@ -180,7 +180,7 @@ lemma frees_fwd_coafter:
 
 lemma frees_inv_lifts_ex:
       ∀b,f2,L,U. L ⊢ 𝐅+⦃U⦄ ≘ f2 →
-      â\88\80f,K. â¬\87*[b,f] L â\89\98 K â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
+      â\88\80f,K. â\87©*[b,f] L â\89\98 K â\86\92 â\88\80T. â\87§*[f] T ≘ U →
       ∃∃f1. f ~⊚ f1 ≘ f2 & K ⊢ 𝐅+⦃T⦄ ≘ f1.
 #b #f2 #L #U #Hf2 #f #K #HLK #T elim (frees_total K T)
 /3 width=9 by frees_fwd_coafter, ex2_intro/
@@ -188,7 +188,7 @@ qed-.
 
 lemma frees_inv_lifts_SO:
       ∀b,f,L,U. L ⊢ 𝐅+⦃U⦄ ≘ f →
-      â\88\80K. â¬\87*[b,ð\9d\90\94â\9d´1â\9dµ] L â\89\98 K â\86\92 â\88\80T. â¬\86*[1] T ≘ U →
+      â\88\80K. â\87©*[b,ð\9d\90\94â\9d´1â\9dµ] L â\89\98 K â\86\92 â\88\80T. â\87§*[1] T ≘ U →
       K ⊢ 𝐅+⦃T⦄ ≘ ⫱f.
 #b #f #L #U #H #K #HLK #T #HTU elim(frees_inv_lifts_ex … H … HLK … HTU) -b -L -U
 #f1 #Hf #Hf1 elim (coafter_inv_nxx … Hf) -Hf
@@ -197,7 +197,7 @@ qed-.
 
 lemma frees_inv_lifts:
       ∀b,f2,L,U. L ⊢ 𝐅+⦃U⦄ ≘ f2 →
-      â\88\80f,K. â¬\87*[b,f] L â\89\98 K â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
+      â\88\80f,K. â\87©*[b,f] L â\89\98 K â\86\92 â\88\80T. â\87§*[f] T ≘ U →
       ∀f1. f ~⊚ f1 ≘ f2 → K ⊢ 𝐅+⦃T⦄ ≘ f1.
 #b #f2 #L #U #H #f #K #HLK #T #HTU #f1 #Hf2 elim (frees_inv_lifts_ex … H … HLK … HTU) -b -L -U
 /3 width=7 by frees_eq_repl_back, coafter_inj/
@@ -206,7 +206,7 @@ qed-.
 (* Note: this is used by rex_conf and might be modified *)
 lemma frees_inv_drops_next:
       ∀f1,L1,T1. L1 ⊢ 𝐅+⦃T1⦄ ≘ f1 →
-      â\88\80I2,L2,V2,n. â¬\87*[n] L1 ≘ L2.ⓑ{I2}V2 →
+      â\88\80I2,L2,V2,n. â\87©*[n] L1 ≘ L2.ⓑ{I2}V2 →
       ∀g1. ↑g1 = ⫱*[n] f1 →
       ∃∃g2. L2 ⊢ 𝐅+⦃V2⦄ ≘ g2 & g2 ⊆ g1.
 #f1 #L1 #T1 #H elim H -f1 -L1 -T1
index 1eee580943ec894f6ed939f3fd6839f9a24ff23f..80552d26a323d82d6184a435f8d6e500af3a4f6f 100644 (file)
@@ -19,7 +19,7 @@ include "static_2/static/fsle_length.ma".
 
 (* Advanced properties ******************************************************)
 
-lemma fsle_lifts_sn: â\88\80T1,U1. â¬\86*[1] T1 ≘ U1 → ∀L1,L2. |L2| ≤ |L1| →
+lemma fsle_lifts_sn: â\88\80T1,U1. â\87§*[1] T1 ≘ U1 → ∀L1,L2. |L2| ≤ |L1| →
                      ∀T2. ⦃L1,T1⦄ ⊆ ⦃L2,T2⦄ → ⦃L1.ⓧ,U1⦄ ⊆ ⦃L2,T2⦄.
 #T1 #U1 #HTU1 #L1 #L2 #H1L #T2
 * #n #m #f #g #Hf #Hg #H2L #Hfg
@@ -30,7 +30,7 @@ lapply (frees_lifts_SO (Ⓣ) (L1.ⓧ) … HTU1 … Hf)
 qed-.
 
 lemma fsle_lifts_dx (L1) (L2):
-                    |L1| â\89¤ |L2| â\86\92 â\88\80T2,U2. â¬\86*[1]T2 ≘ U2 →
+                    |L1| â\89¤ |L2| â\86\92 â\88\80T2,U2. â\87§*[1]T2 ≘ U2 →
                     ∀T1. ⦃L1,T1⦄ ⊆ ⦃L2,T2⦄ → ⦃L1,T1⦄ ⊆ ⦃L2.ⓧ,U2⦄.
 #L1 #L2 #HL21 #T2 #U2 #HTU2 #T1
 * #n #m #f #g #Hf #Hg #H2L #Hfg
@@ -41,7 +41,7 @@ lapply (frees_lifts_SO (Ⓣ) (L2.ⓧ) … HTU2 … Hg)
 qed-.
 
 lemma fsle_lifts_SO_sn: ∀K1,K2. |K1| = |K2| → ∀V1,V2. ⦃K1,V1⦄ ⊆ ⦃K2,V2⦄ →
-                        â\88\80W1. â¬\86*[1] V1 ≘ W1 → ∀I1,I2. ⦃K1.ⓘ{I1},W1⦄ ⊆ ⦃K2.ⓑ{I2}V2,#O⦄.
+                        â\88\80W1. â\87§*[1] V1 ≘ W1 → ∀I1,I2. ⦃K1.ⓘ{I1},W1⦄ ⊆ ⦃K2.ⓑ{I2}V2,#O⦄.
 #K1 #K2 #HK #V1 #V2
 * #n1 #n2 #f1 #f2 #Hf1 #Hf2 #HK12 #Hf12
 #W1 #HVW1 #I1 #I2
@@ -50,7 +50,7 @@ elim (lveq_inj_length … HK12) // -HK #H1 #H2 destruct
 qed.
 
 lemma fsle_lifts_SO: ∀K1,K2. |K1| = |K2| → ∀T1,T2. ⦃K1,T1⦄ ⊆ ⦃K2,T2⦄ →
-                     â\88\80U1,U2. â¬\86*[1] T1 â\89\98 U1 â\86\92 â¬\86*[1] T2 ≘ U2 →
+                     â\88\80U1,U2. â\87§*[1] T1 â\89\98 U1 â\86\92 â\87§*[1] T2 ≘ U2 →
                      ∀I1,I2.  ⦃K1.ⓘ{I1},U1⦄ ⊆ ⦃K2.ⓘ{I2},U2⦄.
 #K1 #K2 #HK #T1 #T2
 * #n1 #n2 #f1 #f2 #Hf1 #Hf2 #HK12 #Hf12
@@ -61,7 +61,7 @@ qed.
 
 (* Advanced inversion lemmas ************************************************)
 
-lemma fsle_inv_lifts_sn: â\88\80T1,U1. â¬\86*[1] T1 ≘ U1 →
+lemma fsle_inv_lifts_sn: â\88\80T1,U1. â\87§*[1] T1 ≘ U1 →
                          ∀I1,I2,L1,L2,V1,V2,U2. ⦃L1.ⓑ{I1}V1,U1⦄ ⊆ ⦃L2.ⓑ{I2}V2,U2⦄ →
                          ∀p. ⦃L1,T1⦄ ⊆ ⦃L2,ⓑ{p,I2}V2.U2⦄.
 #T1 #U1 #HTU1 #I1 #I2 #L1 #L2 #V1 #V2 #U2
index 7fa84f9fbc09280f229c6f30b09d8992d8336930..58e3084f6854e7d95f7d95e265e47096486ee436 100644 (file)
@@ -22,8 +22,8 @@ include "static_2/static/lsubc_drops.ma".
 (* Basic_1: was: sc3_arity_csubc *)
 theorem acr_aaa_csubc_lifts: ∀RR,RS,RP.
                              gcp RR RS RP → gcr RR RS RP RP →
-                             â\88\80G,L1,T,A. â¦\83G,L1â¦\84 â\8a¢ T â\81\9d A â\86\92 â\88\80b,f,L0. â¬\87*[b,f] L0 ≘ L1 →
-                             â\88\80T0. â¬\86*[f] T ≘ T0 → ∀L2. G ⊢ L2 ⫃[RP] L0 →
+                             â\88\80G,L1,T,A. â¦\83G,L1â¦\84 â\8a¢ T â\81\9d A â\86\92 â\88\80b,f,L0. â\87©*[b,f] L0 ≘ L1 →
+                             â\88\80T0. â\87§*[f] T ≘ T0 → ∀L2. G ⊢ L2 ⫃[RP] L0 →
                              ⦃G,L2,T0⦄ ϵ[RP] 〚A〛.
 #RR #RS #RP #H1RP #H2RP #G #L1 #T @(fqup_wf_ind_eq (Ⓣ) … G L1 T) -G -L1 -T
 #Z #Y #X #IH #G #L1 * [ * | * [ #p ] * ]
index d13387c3f743120c850910b296d0f984b1dc380d..e14ca2a6f9c18847776888afb83ef9aa4314a9bc 100644 (file)
@@ -36,11 +36,11 @@ definition S3 ≝ λC:candidate.
                 C G L (ⒶVs.ⓓ{a}ⓝW.V.T) → C G L (ⒶVs.ⓐV.ⓛ{a}W.T).
 
 definition S5 ≝ λC:candidate. ∀I,G,L,K,Vs,V1,V2,i.
-                C G L (â\92¶Vs.V2) â\86\92 â¬\86*[↑i] V1 ≘ V2 →
-                â¬\87*[i] L ≘ K.ⓑ{I}V1 → C G L (ⒶVs.#i).
+                C G L (â\92¶Vs.V2) â\86\92 â\87§*[↑i] V1 ≘ V2 →
+                â\87©*[i] L ≘ K.ⓑ{I}V1 → C G L (ⒶVs.#i).
 
 definition S6 ≝ λRP,C:candidate.
-                â\88\80G,L,V1b,V2b. â¬\86*[1] V1b ≘ V2b →
+                â\88\80G,L,V1b,V2b. â\87§*[1] V1b ≘ V2b →
                 ∀a,V,T. C G (L.ⓓV) (ⒶV2b.T) → RP G L V → C G L (ⒶV1b.ⓓ{a}V.T).
 
 definition S7 ≝ λC:candidate.
@@ -59,7 +59,7 @@ record gcr (RR:relation4 genv lenv term term) (RS:relation term) (RP,C:candidate
 (* the functional construction for candidates *)
 definition cfun: candidate → candidate → candidate ≝
                  λC1,C2,G,K,T. ∀f,L,W,U.
-                 â¬\87*[â\92»,f] L â\89\98 K â\86\92 â¬\86*[f] T ≘ U → C1 G L W → C2 G L (ⓐW.U).
+                 â\87©*[â\92»,f] L â\89\98 K â\86\92 â\87§*[f] T ≘ U → C1 G L W → C2 G L (ⓐW.U).
 
 (* the reducibility candidate associated to an atomic arity *)
 rec definition acr (RP:candidate) (A:aarity) on A: candidate ≝
@@ -149,7 +149,7 @@ qed.
 
 lemma acr_abst: ∀RR,RS,RP. gcp RR RS RP → gcr RR RS RP RP →
                 ∀p,G,L,W,T,A,B. ⦃G,L,W⦄ ϵ[RP] 〚B〛 → (
-                   â\88\80b,f,L0,V0,W0,T0. â¬\87*[b,f] L0 â\89\98 L â\86\92 â¬\86*[f] W â\89\98 W0 â\86\92 â¬\86*[⫯f] T ≘ T0 →
+                   â\88\80b,f,L0,V0,W0,T0. â\87©*[b,f] L0 â\89\98 L â\86\92 â\87§*[f] W â\89\98 W0 â\86\92 â\87§*[⫯f] T ≘ T0 →
                                    ⦃G,L0,V0⦄ ϵ[RP] 〚B〛 → ⦃G,L0,W0⦄ ϵ[RP] 〚B〛 → ⦃G,L0.ⓓⓝW0.V0,T0⦄ ϵ[RP] 〚A〛
                 ) →
                 ⦃G,L,ⓛ{p}W.T⦄ ϵ[RP] 〚②B.A〛.
index 86d3a1bb90ecb2273ca3a32eb60723d71392ea74..efca71482a305d8b830a3bfd2a620c7a7fabaa13 100644 (file)
@@ -22,8 +22,8 @@ include "static_2/static/lsuba.ma".
 (* Note: the premise 𝐔⦃f⦄ cannot be removed *)
 (* Basic_2A1: includes: lsuba_drop_O1_conf *)
 lemma lsuba_drops_conf_isuni: ∀G,L1,L2. G ⊢ L1 ⫃⁝ L2 → 
-                              â\88\80b,f,K1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L1 ≘ K1 →
-                              â\88\83â\88\83K2. G â\8a¢ K1 â«\83â\81\9d K2 & â¬\87*[b,f] L2 ≘ K2.
+                              â\88\80b,f,K1. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L1 ≘ K1 →
+                              â\88\83â\88\83K2. G â\8a¢ K1 â«\83â\81\9d K2 & â\87©*[b,f] L2 ≘ K2.
 #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #HL12 #IH #b #f #K1 #Hf #H
@@ -46,8 +46,8 @@ qed-.
 (* Note: the premise 𝐔⦃f⦄ cannot be removed *)
 (* Basic_2A1: includes: lsuba_drop_O1_trans *)
 lemma lsuba_drops_trans_isuni: ∀G,L1,L2. G ⊢ L1 ⫃⁝ L2 →
-                               â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                               â\88\83â\88\83K1. G â\8a¢ K1 â«\83â\81\9d K2 & â¬\87*[b,f] L1 ≘ K1.
+                               â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                               â\88\83â\88\83K1. G â\8a¢ K1 â«\83â\81\9d K2 & â\87©*[b,f] L1 ≘ K1.
 #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #HL12 #IH #b #f #K2 #Hf #H
index c4f58651397cd9acc90245215b8491075c1df066..4cfe0eade20f0cabaf0522d8b15821e01413e658 100644 (file)
@@ -23,8 +23,8 @@ include "static_2/static/lsubc.ma".
 (* Basic_1: includes: csubc_drop_conf_O *)
 (* Basic_2A1: includes: lsubc_drop_O1_trans *)
 lemma lsubc_drops_trans_isuni: ∀RP,G,L1,L2. G ⊢ L1 ⫃[RP] L2 →
-                               â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                               â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & G ⊢ K1 ⫃[RP] K2.
+                               â\88\80b,f,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                               â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & G ⊢ K1 ⫃[RP] K2.
 #RP #G #L1 #L2 #H elim H -L1 -L2
 [ /2 width=3 by ex2_intro/
 | #I #L1 #L2 #HL12 #IH #b #f #K2 #Hf #H
@@ -48,8 +48,8 @@ qed-.
 (* Basic_1: includes: csubc_drop_conf_rev *)
 (* Basic_2A1: includes: drop_lsubc_trans *)
 lemma drops_lsubc_trans: ∀RR,RS,RP. gcp RR RS RP →
-                         â\88\80b,f,G,L1,K1. â¬\87*[b,f] L1 ≘ K1 → ∀K2. G ⊢ K1 ⫃[RP] K2 →
-                         â\88\83â\88\83L2. G â\8a¢ L1 â«\83[RP] L2 & â¬\87*[b,f] L2 ≘ K2.
+                         â\88\80b,f,G,L1,K1. â\87©*[b,f] L1 ≘ K1 → ∀K2. G ⊢ K1 ⫃[RP] K2 →
+                         â\88\83â\88\83L2. G â\8a¢ L1 â«\83[RP] L2 & â\87©*[b,f] L2 ≘ K2.
 #RR #RS #RP #HR #b #f #G #L1 #K1 #H elim H -f -L1 -K1
 [ #f #Hf #Y #H lapply (lsubc_inv_atom1 … H) -H
   #H destruct /4 width=3 by lsubc_atom, drops_atom, ex2_intro/
index ac9e9e41f564d62cae1a92266a0291fac36a192e..4bcba00a9bfd56fe8d7e346565704d077edabf8a 100644 (file)
@@ -22,10 +22,10 @@ include "static_2/static/lsubr.ma".
 (* Basic_2A1: includes: lsubr_fwd_drop2_pair *)
 lemma lsubr_fwd_drops2_bind:
       ∀L1,L2. L1 ⫃ L2 → 
-      â\88\80b,f,I,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L2 ≘ K2.ⓘ{I} →
-      â\88¨â\88¨ â\88\83â\88\83K1. K1 â«\83 K2 & â¬\87*[b,f] L1 ≘ K1.ⓘ{I}
-       | â\88\83â\88\83K1,W,V. K1 â«\83 K2 & â¬\87*[b,f] L1 ≘ K1.ⓓⓝW.V & I = BPair Abst W
-       | â\88\83â\88\83J1,J2,K1,V. K1 â«\83 K2 & â¬\87*[b,f] L1 ≘ K1.ⓑ{J1}V & I = BUnit J2.
+      â\88\80b,f,I,K2. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L2 ≘ K2.ⓘ{I} →
+      â\88¨â\88¨ â\88\83â\88\83K1. K1 â«\83 K2 & â\87©*[b,f] L1 ≘ K1.ⓘ{I}
+       | â\88\83â\88\83K1,W,V. K1 â«\83 K2 & â\87©*[b,f] L1 ≘ K1.ⓓⓝW.V & I = BPair Abst W
+       | â\88\83â\88\83J1,J2,K1,V. K1 â«\83 K2 & â\87©*[b,f] L1 ≘ K1.ⓑ{J1}V & I = BUnit J2.
 #L1 #L2 #H elim H -L1 -L2
 [ #b #f #I #K2 #_ #H
   elim (drops_inv_atom1 … H) -H #H destruct
@@ -44,8 +44,8 @@ qed-.
 (* Basic_2A1: includes: lsubr_fwd_drop2_abbr *)
 lemma lsubr_fwd_drops2_abbr:
       ∀L1,L2. L1 ⫃ L2 →
-      â\88\80b,f,K2,V. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â¬\87*[b,f] L2 ≘ K2.ⓓV →
-      â\88\83â\88\83K1. K1 â«\83 K2 & â¬\87*[b,f] L1 ≘ K1.ⓓV.
+      â\88\80b,f,K2,V. ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\87©*[b,f] L2 ≘ K2.ⓓV →
+      â\88\83â\88\83K1. K1 â«\83 K2 & â\87©*[b,f] L1 ≘ K1.ⓓV.
 #L1 #L2 #HL12 #b #f #K2 #V #Hf #HLK2
 elim (lsubr_fwd_drops2_bind … HL12 … Hf HLK2) -L2 -Hf // *
 [ #K1 #W #V #_ #_ #H destruct
index 6246d21a2d954289a29a2336b66ce87fdfb3a305..15e7ca69ca90952a08807927fa991db543732f08 100644 (file)
@@ -32,21 +32,21 @@ lemma rdeq_inv_lifts_dx: f_dropable_dx cdeq.
 /2 width=5 by rex_dropable_dx/ qed-.
 
 lemma rdeq_inv_lifts_bi: ∀L1,L2,U. L1 ≛[U] L2 → ∀b,f. 𝐔⦃f⦄ →
-                         â\88\80K1,K2. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                         â\88\80T. â¬\86*[f] T ≘ U → K1 ≛[T] K2.
+                         â\88\80K1,K2. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                         â\88\80T. â\87§*[f] T ≘ U → K1 ≛[T] K2.
 /2 width=10 by rex_inv_lifts_bi/ qed-.
 
-lemma rdeq_inv_lref_pair_sn: â\88\80L1,L2,i. L1 â\89\9b[#i] L2 â\86\92 â\88\80I,K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I}V1 →
-                             â\88\83â\88\83K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I}V2 & K1 ≛[V1] K2 & V1 ≛ V2.
+lemma rdeq_inv_lref_pair_sn: â\88\80L1,L2,i. L1 â\89\9b[#i] L2 â\86\92 â\88\80I,K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I}V1 →
+                             â\88\83â\88\83K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I}V2 & K1 ≛[V1] K2 & V1 ≛ V2.
 /2 width=3 by rex_inv_lref_pair_sn/ qed-.
 
-lemma rdeq_inv_lref_pair_dx: â\88\80L1,L2,i. L1 â\89\9b[#i] L2 â\86\92 â\88\80I,K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I}V2 →
-                             â\88\83â\88\83K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I}V1 & K1 ≛[V1] K2 & V1 ≛ V2.
+lemma rdeq_inv_lref_pair_dx: â\88\80L1,L2,i. L1 â\89\9b[#i] L2 â\86\92 â\88\80I,K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I}V2 →
+                             â\88\83â\88\83K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I}V1 & K1 ≛[V1] K2 & V1 ≛ V2.
 /2 width=3 by rex_inv_lref_pair_dx/ qed-.
 
 lemma rdeq_inv_lref_pair_bi (L1) (L2) (i):
                             L1 ≛[#i] L2 →
-                            â\88\80I1,K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I1}V1 →
-                            â\88\80I2,K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I2}V2 →
+                            â\88\80I1,K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I1}V1 →
+                            â\88\80I2,K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I2}V2 →
                             ∧∧ K1 ≛[V1] K2 & V1 ≛ V2 & I1 = I2.
 /2 width=6 by rex_inv_lref_pair_bi/ qed-.
index 967c4c0e64abbc5eda2b564e9954fe0c9e0b0faa..1b50d4cd5b5e5bed59c36120c67dd8453ea0851f 100644 (file)
@@ -44,8 +44,8 @@ lemma rdeq_unit_length: ∀L1,L2. |L1| = |L2| →
 
 (* Basic_2A1: uses: lleq_lift_le lleq_lift_ge *)
 lemma rdeq_lifts_bi: ∀L1,L2. |L1| = |L2| → ∀K1,K2,T. K1 ≛[T] K2 →
-                     â\88\80b,f. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                     â\88\80U. â¬\86*[f] T ≘ U → L1 ≛[U] L2.
+                     â\88\80b,f. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                     â\88\80U. â\87§*[f] T ≘ U → L1 ≛[U] L2.
 /3 width=9 by rex_lifts_bi, tdeq_lifts_sn/ qed-.
 
 (* Forward lemmas with length for local environments ************************)
index 76f25cd40ee8ee92b8fa7d0bfdd959a66f12e2f7..9acbbb933790d2a622958be7f9f9ecceca63bc69 100644 (file)
@@ -21,6 +21,6 @@ include "static_2/static/req.ma".
 
 (* Basic_2A1: uses: lleq_inv_lift_le lleq_inv_lift_be lleq_inv_lift_ge *)
 lemma req_inv_lifts_bi: ∀L1,L2,U. L1 ≡[U] L2 → ∀b,f. 𝐔⦃f⦄ →
-                        â\88\80K1,K2. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-                        â\88\80T. â¬\86*[f] T ≘ U → K1 ≡[T] K2.
+                        â\88\80K1,K2. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+                        â\88\80T. â\87§*[f] T ≘ U → K1 ≡[T] K2.
 /2 width=10 by rex_inv_lifts_bi/ qed-.
index f3421b04c8770b3b9b57b1fb6e2ad4fd465d79f2..f2f47d3d0aa2aea5a7a79a29797cfc9bc4b49e95 100644 (file)
@@ -20,23 +20,23 @@ include "static_2/static/rex.ma".
 (* GENERIC EXTENSION ON REFERRED ENTRIES OF A CONTEXT-SENSITIVE REALTION ****)
 
 definition f_dedropable_sn: predicate (relation3 lenv term term) ≝
-                            Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 →
-                            â\88\80K2,T. K1 âª¤[R,T] K2 â\86\92 â\88\80U. â¬\86*[f] T ≘ U →
-                            â\88\83â\88\83L2. L1 âª¤[R,U] L2 & â¬\87*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
+                            Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 →
+                            â\88\80K2,T. K1 âª¤[R,T] K2 â\86\92 â\88\80U. â\87§*[f] T ≘ U →
+                            â\88\83â\88\83L2. L1 âª¤[R,U] L2 & â\87©*[b,f] L2 ≘ K2 & L1 ≡[f] L2.
 
 definition f_dropable_sn: predicate (relation3 lenv term term) ≝
-                          Î»R. â\88\80b,f,L1,K1. â¬\87*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
-                          â\88\80L2,U. L1 âª¤[R,U] L2 â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
-                          â\88\83â\88\83K2. K1 âª¤[R,T] K2 & â¬\87*[b,f] L2 ≘ K2.
+                          Î»R. â\88\80b,f,L1,K1. â\87©*[b,f] L1 ≘ K1 → 𝐔⦃f⦄ →
+                          â\88\80L2,U. L1 âª¤[R,U] L2 â\86\92 â\88\80T. â\87§*[f] T ≘ U →
+                          â\88\83â\88\83K2. K1 âª¤[R,T] K2 & â\87©*[b,f] L2 ≘ K2.
 
 definition f_dropable_dx: predicate (relation3 lenv term term) ≝
                           λR. ∀L1,L2,U. L1 ⪤[R,U] L2 →
-                          â\88\80b,f,K2. â¬\87*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80T. â¬\86*[f] T ≘ U →
-                          â\88\83â\88\83K1. â¬\87*[b,f] L1 ≘ K1 & K1 ⪤[R,T] K2.
+                          â\88\80b,f,K2. â\87©*[b,f] L2 â\89\98 K2 â\86\92 ð\9d\90\94â¦\83fâ¦\84 â\86\92 â\88\80T. â\87§*[f] T ≘ U →
+                          â\88\83â\88\83K1. â\87©*[b,f] L1 ≘ K1 & K1 ⪤[R,T] K2.
 
 definition f_transitive_next: relation3 … ≝ λR1,R2,R3.
                               ∀f,L,T. L ⊢ 𝐅+⦃T⦄ ≘ f →
-                              â\88\80g,I,K,n. â¬\87*[n] L ≘ K.ⓘ{I} → ↑g = ⫱*[n] f →
+                              â\88\80g,I,K,n. â\87©*[n] L ≘ K.ⓘ{I} → ↑g = ⫱*[n] f →
                               sex_transitive (cext2 R1) (cext2 R2) (cext2 R3) (cext2 R1) cfull g K I.
 
 (* Properties with generic slicing for local environments *******************)
@@ -91,24 +91,24 @@ qed-.
 (* Basic_2A1: uses: llpx_sn_inv_lift_O *)
 lemma rex_inv_lifts_bi (R):
       ∀L1,L2,U. L1 ⪤[R,U] L2 → ∀b,f. 𝐔⦃f⦄ → 
-      â\88\80K1,K2. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-      â\88\80T. â¬\86*[f] T ≘ U → K1 ⪤[R,T] K2.
+      â\88\80K1,K2. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+      â\88\80T. â\87§*[f] T ≘ U → K1 ⪤[R,T] K2.
 #R #L1 #L2 #U #HL12 #b #f #Hf #K1 #K2 #HLK1 #HLK2 #T #HTU
 elim (rex_dropable_sn … HLK1 … HL12 … HTU) -L1 -U // #Y #HK12 #HY
 lapply (drops_mono … HY … HLK2) -b -f -L2 #H destruct //
 qed-.
 
 lemma rex_inv_lref_pair_sn (R):
-      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I}V1 →
-      â\88\83â\88\83K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I}V2 & K1 ⪤[R,V1] K2 & R K1 V1 V2.
+      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I}V1 →
+      â\88\83â\88\83K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I}V2 & K1 ⪤[R,V1] K2 & R K1 V1 V2.
 #R #L1 #L2 #i #HL12 #I #K1 #V1 #HLK1 elim (rex_dropable_sn … HLK1 … HL12 (#0)) -HLK1 -HL12 //
 #Y #HY #HLK2 elim (rex_inv_zero_pair_sn … HY) -HY
 #K2 #V2 #HK12 #HV12 #H destruct /2 width=5 by ex3_2_intro/
 qed-.
 
 lemma rex_inv_lref_pair_dx (R):
-      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I}V2 →
-      â\88\83â\88\83K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I}V1 & K1 ⪤[R,V1] K2 & R K1 V1 V2.
+      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I}V2 →
+      â\88\83â\88\83K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I}V1 & K1 ⪤[R,V1] K2 & R K1 V1 V2.
 #R #L1 #L2 #i #HL12 #I #K2 #V2 #HLK2 elim (rex_dropable_dx … HL12 … HLK2 … (#0)) -HLK2 -HL12 //
 #Y #HLK1 #HY elim (rex_inv_zero_pair_dx … HY) -HY
 #K1 #V1 #HK12 #HV12 #H destruct /2 width=5 by ex3_2_intro/
@@ -116,8 +116,8 @@ qed-.
 
 lemma rex_inv_lref_pair_bi (R) (L1) (L2) (i):
       L1 ⪤[R,#i] L2 →
-      â\88\80I1,K1,V1. â¬\87*[i] L1 ≘ K1.ⓑ{I1}V1 →
-      â\88\80I2,K2,V2. â¬\87*[i] L2 ≘ K2.ⓑ{I2}V2 →
+      â\88\80I1,K1,V1. â\87©*[i] L1 ≘ K1.ⓑ{I1}V1 →
+      â\88\80I2,K2,V2. â\87©*[i] L2 ≘ K2.ⓑ{I2}V2 →
       ∧∧ K1 ⪤[R,V1] K2 & R K1 V1 V2 & I1 = I2.
 #R #L1 #L2 #i #H12 #I1 #K1 #V1 #H1 #I2 #K2 #V2 #H2
 elim (rex_inv_lref_pair_sn … H12 … H1) -L1 #Y2 #X2 #HLY2 #HK12 #HV12
@@ -126,16 +126,16 @@ lapply (drops_mono … HLY2 … H2) -HLY2 -H2 #H destruct
 qed-.
 
 lemma rex_inv_lref_unit_sn (R):
-      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K1. â¬\87*[i] L1 ≘ K1.ⓤ{I} →
-      â\88\83â\88\83f,K2. â¬\87*[i] L2 ≘ K2.ⓤ{I} & K1 ⪤[cext2 R,cfull,f] K2 & 𝐈⦃f⦄.
+      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K1. â\87©*[i] L1 ≘ K1.ⓤ{I} →
+      â\88\83â\88\83f,K2. â\87©*[i] L2 ≘ K2.ⓤ{I} & K1 ⪤[cext2 R,cfull,f] K2 & 𝐈⦃f⦄.
 #R #L1 #L2 #i #HL12 #I #K1 #HLK1 elim (rex_dropable_sn … HLK1 … HL12 (#0)) -HLK1 -HL12 //
 #Y #HY #HLK2 elim (rex_inv_zero_unit_sn … HY) -HY
 #f #K2 #Hf #HK12 #H destruct /2 width=5 by ex3_2_intro/
 qed-.
 
 lemma rex_inv_lref_unit_dx (R):
-      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K2. â¬\87*[i] L2 ≘ K2.ⓤ{I} →
-      â\88\83â\88\83f,K1. â¬\87*[i] L1 ≘ K1.ⓤ{I} & K1 ⪤[cext2 R,cfull,f] K2 & 𝐈⦃f⦄.
+      â\88\80L1,L2,i. L1 âª¤[R,#i] L2 â\86\92 â\88\80I,K2. â\87©*[i] L2 ≘ K2.ⓤ{I} →
+      â\88\83â\88\83f,K1. â\87©*[i] L1 ≘ K1.ⓤ{I} & K1 ⪤[cext2 R,cfull,f] K2 & 𝐈⦃f⦄.
 #R #L1 #L2 #i #HL12 #I #K2 #HLK2 elim (rex_dropable_dx … HL12 … HLK2 … (#0)) -HLK2 -HL12 //
 #Y #HLK1 #HY elim (rex_inv_zero_unit_dx … HY) -HY
 #f #K2 #Hf #HK12 #H destruct /2 width=5 by ex3_2_intro/
index 0fa17450bb2ba1348fef64ae14f8b5d5687a82ac..a963524d258d3c7844eae4bd1bda4ed6267f763d 100644 (file)
@@ -53,8 +53,8 @@ lemma rex_unit_length (R): ∀L1,L2. |L1| = |L2| → ∀I. L1.ⓤ{I} ⪤[R,#0] L
 lemma rex_lifts_bi (R):
       d_liftable2_sn … lifts R →
       ∀L1,L2. |L1| = |L2| → ∀K1,K2,T. K1 ⪤[R,T] K2 →
-      â\88\80b,f. â¬\87*[b,f] L1 â\89\98 K1 â\86\92 â¬\87*[b,f] L2 ≘ K2 →
-      â\88\80U. â¬\86*[f] T ≘ U → L1 ⪤[R,U] L2.
+      â\88\80b,f. â\87©*[b,f] L1 â\89\98 K1 â\86\92 â\87©*[b,f] L2 ≘ K2 →
+      â\88\80U. â\87§*[f] T ≘ U → L1 ⪤[R,U] L2.
 #R #HR #L1 #L2 #HL12 #K1 #K2 #T * #f1 #Hf1 #HK12 #b #f #HLK1 #HLK2 #U #HTU
 elim (frees_total L1 U) #f2 #Hf2
 lapply (frees_fwd_coafter … Hf2 … HLK1 … HTU … Hf1) -HTU #Hf
index 0a962c3f8fcf23467454048328fdfab173e1d1bb..44690009a001fb7a21d36fd2fc90c2dea41b5c21 100644 (file)
@@ -76,17 +76,17 @@ table {
    class "orange"
    [ { "relocation" * } {
         [ { "generic and uniform slicing" * } {
-             [ [ "for lenvs" ] "drops" + "( â¬\87*[?,?] ? â\89\98 ? )" + "( â¬\87*[?] ? ≘ ? )" "drops_ctc" + "drops_ltc" + "drops_weight" + "drops_length" + "drops_cext2" + "drops_sex" + "drops_lex" + "drops_seq" + "drops_drops" + "drops_vector" * ]
+             [ [ "for lenvs" ] "drops" + "( â\87©*[?,?] ? â\89\98 ? )" + "( â\87©*[?] ? ≘ ? )" "drops_ctc" + "drops_ltc" + "drops_weight" + "drops_length" + "drops_cext2" + "drops_sex" + "drops_lex" + "drops_seq" + "drops_drops" + "drops_vector" * ]
           }
         ]
         [ { "basic relocation" * } {
-             [ [ "for terms" ] "lifts_basic" + "( â¬\86[?,?] ? ≘ ? )" * ]
+             [ [ "for terms" ] "lifts_basic" + "( â\87§[?,?] ? ≘ ? )" * ]
           }
         ]
         [ { "generic and uniform relocation" * } {
-             [ [ "for binders" ] "lifts_bind" + "( â¬\86*[?] ? ≘ ? )" "lifts_weight_bind" + "lifts_lifts_bind" * ]
-             [ [ "for term vectors" ] "lifts_vector" + "( â¬\86*[?] ? ≘ ? )" "lifts_lifts_vector" * ]
-             [ [ "for terms" ] "lifts" + "( â¬\86*[?] ? ≘ ? )" "lifts_simple" + "lifts_weight" + "lifts_tdeq" + "lifts_tweq" + "lifts_toeq" + "lifts_lifts" * ]
+             [ [ "for binders" ] "lifts_bind" + "( â\87§*[?] ? ≘ ? )" "lifts_weight_bind" + "lifts_lifts_bind" * ]
+             [ [ "for term vectors" ] "lifts_vector" + "( â\87§*[?] ? ≘ ? )" "lifts_lifts_vector" * ]
+             [ [ "for terms" ] "lifts" + "( â\87§*[?] ? ≘ ? )" "lifts_simple" + "lifts_weight" + "lifts_tdeq" + "lifts_tweq" + "lifts_toeq" + "lifts_lifts" * ]
           }
         ]
         [ { "syntactic equivalence" * } {