From dc605ae41c39773f55381f241b1ed3db4acf5edd Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Tue, 29 Jun 2021 18:31:37 +0200 Subject: [PATCH] update in ground and static_2 + notation update for tail function + predefined virtuals: one symbol added --- .../contribs/lambdadelta/apps_2/web/apps_2_src.tbl | 2 +- .../contribs/lambdadelta/ground/lib/stream_hdtl.ma | 8 ++++---- .../contribs/lambdadelta/ground/lib/stream_tls.ma | 12 ++++++------ .../lambdadelta/ground/lib/stream_tls_eq.ma | 2 +- .../{downspoon_2.ma => downdashedarrow_2.ma} | 12 ++++++------ ...downspoonstar_3.ma => downdashedarrowstar_3.ma} | 12 ++++++------ .../functions/{droppred_1.ma => downspoon_1.ma} | 4 ++-- .../{droppreds_2.ma => downspoonstar_2.ma} | 4 ++-- .../ground/relocation/gr_after_after_ist.ma | 2 +- .../ground/relocation/gr_after_nat_uni_tls.ma | 4 ++-- .../ground/relocation/gr_after_pat_tls.ma | 2 +- .../ground/relocation/gr_after_pat_uni_tls.ma | 4 ++-- .../lambdadelta/ground/relocation/gr_coafter.ma | 8 ++++---- .../ground/relocation/gr_coafter_coafter_ist.ma | 2 +- .../ground/relocation/gr_coafter_nat_tls.ma | 4 ++-- .../ground/relocation/gr_coafter_nat_tls_pushs.ma | 2 +- .../ground/relocation/gr_coafter_pat_tls.ma | 6 +++--- .../lambdadelta/ground/relocation/gr_isd_tl.ma | 2 +- .../lambdadelta/ground/relocation/gr_isd_tls.ma | 2 +- .../lambdadelta/ground/relocation/gr_isf_tl.ma | 4 ++-- .../lambdadelta/ground/relocation/gr_isf_tls.ma | 4 ++-- .../lambdadelta/ground/relocation/gr_isi_tl.ma | 2 +- .../lambdadelta/ground/relocation/gr_isi_tls.ma | 2 +- .../lambdadelta/ground/relocation/gr_ist.ma | 2 +- .../lambdadelta/ground/relocation/gr_ist_tls.ma | 2 +- .../lambdadelta/ground/relocation/gr_isu_tl.ma | 2 +- .../lambdadelta/ground/relocation/gr_pat_lt.ma | 2 +- .../lambdadelta/ground/relocation/gr_pat_tls.ma | 8 ++++---- .../lambdadelta/ground/relocation/gr_sle.ma | 10 +++++----- .../lambdadelta/ground/relocation/gr_sle_tls.ma | 2 +- .../lambdadelta/ground/relocation/gr_sor.ma | 14 +++++++------- .../lambdadelta/ground/relocation/gr_sor_tls.ma | 2 +- .../lambdadelta/ground/relocation/gr_tl.ma | 12 ++++++------ .../lambdadelta/ground/relocation/gr_tl_eq.ma | 14 +++++++------- .../lambdadelta/ground/relocation/gr_tls.ma | 14 +++++++------- .../lambdadelta/ground/relocation/gr_tls_eq.ma | 2 +- .../ground/relocation/gr_tls_nexts_eq.ma | 4 ++-- .../lambdadelta/ground/relocation/gr_tls_pushs.ma | 2 +- .../ground/relocation/gr_tls_pushs_eq.ma | 4 ++-- .../contribs/lambdadelta/ground/web/ground_src.tbl | 8 ++++---- .../lambdadelta/static_2/relocation/drops.ma | 6 +++--- .../lambdadelta/static_2/relocation/drops_sex.ma | 2 +- .../lambdadelta/static_2/relocation/seq.ma | 2 +- .../lambdadelta/static_2/relocation/sex.ma | 6 +++--- .../lambdadelta/static_2/relocation/sex_sex.ma | 12 ++++++------ .../contribs/lambdadelta/static_2/static/frees.ma | 6 +++--- .../lambdadelta/static_2/static/frees_drops.ma | 4 ++-- .../lambdadelta/static_2/static/frees_fqup.ma | 8 ++++---- .../contribs/lambdadelta/static_2/static/fsle.ma | 2 +- .../lambdadelta/static_2/static/fsle_drops.ma | 2 +- .../lambdadelta/static_2/static/fsle_fqup.ma | 6 +++--- .../lambdadelta/static_2/static/fsle_fsle.ma | 14 +++++++------- .../contribs/lambdadelta/static_2/static/lsubf.ma | 10 +++++----- .../lambdadelta/static_2/static/rex_drops.ma | 4 ++-- .../lambdadelta/static_2/static/rex_rex.ma | 4 ++-- matita/matita/predefined_virtuals.ml | 2 +- 56 files changed, 150 insertions(+), 150 deletions(-) rename matita/matita/contribs/lambdadelta/ground/notation/functions/{downspoon_2.ma => downdashedarrow_2.ma} (83%) rename matita/matita/contribs/lambdadelta/ground/notation/functions/{downspoonstar_3.ma => downdashedarrowstar_3.ma} (79%) rename matita/matita/contribs/lambdadelta/ground/notation/functions/{droppred_1.ma => downspoon_1.ma} (94%) rename matita/matita/contribs/lambdadelta/ground/notation/functions/{droppreds_2.ma => downspoonstar_2.ma} (92%) diff --git a/matita/matita/contribs/lambdadelta/apps_2/web/apps_2_src.tbl b/matita/matita/contribs/lambdadelta/apps_2/web/apps_2_src.tbl index 76794da82..2c781ef57 100644 --- a/matita/matita/contribs/lambdadelta/apps_2/web/apps_2_src.tbl +++ b/matita/matita/contribs/lambdadelta/apps_2/web/apps_2_src.tbl @@ -83,7 +83,7 @@ class "capitalize italic" { 0 } class "italic" { 1 } (* [ { "evaluation drop" * } { - [ "vdrop" + "( ⫰{?}? )" + "( ⫰{?}[?]? )" "vdrop_vlift" * ] + [ "vdrop" + "( ⇣{?}? )" + "( ⇣{?}[?]? )" "vdrop_vlift" * ] } ] [ { "reduction and type machine" * } { diff --git a/matita/matita/contribs/lambdadelta/ground/lib/stream_hdtl.ma b/matita/matita/contribs/lambdadelta/ground/lib/stream_hdtl.ma index 5ddd583d1..a23cb4ca8 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/stream_hdtl.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/stream_hdtl.ma @@ -12,7 +12,7 @@ (* *) (**************************************************************************) -include "ground/notation/functions/downspoon_2.ma". +include "ground/notation/functions/downdashedarrow_2.ma". include "ground/lib/stream.ma". (* HEAD AND TAIL FOR STREAMS ************************************************) @@ -27,7 +27,7 @@ defined. interpretation "tail (streams)" - 'DownSpoon A t = (stream_tl A t). + 'DownDashedArrow A t = (stream_tl A t). (* Basic constructions ******************************************************) @@ -36,10 +36,10 @@ lemma stream_hd_cons (A) (a) (t): // qed. lemma stream_tl_cons (A) (a) (t): - t = ⫰{A}(a⨮t). + t = ⇣{A}(a⨮t). // qed. lemma stream_split_tl (A) (t): - stream_hd A t ⨮ ⫰t = t. + stream_hd A t ⨮ ⇣t = t. #A * // qed. diff --git a/matita/matita/contribs/lambdadelta/ground/lib/stream_tls.ma b/matita/matita/contribs/lambdadelta/ground/lib/stream_tls.ma index 185de605e..670790c91 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/stream_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/stream_tls.ma @@ -12,7 +12,7 @@ (* *) (**************************************************************************) -include "ground/notation/functions/downspoonstar_3.ma". +include "ground/notation/functions/downdashedarrowstar_3.ma". include "ground/lib/stream_hdtl.ma". include "ground/arith/nat_succ_iter.ma". @@ -23,26 +23,26 @@ definition stream_tls (A) (n): stream A → stream A ≝ interpretation "iterated tail (strams)" - 'DownSpoonStar A n f = (stream_tls A n f). + 'DownDashedArrowStar A n f = (stream_tls A n f). (* Basic constructions ******************************************************) lemma stream_tls_zero (A) (t): - t = ⫰*{A}[𝟎]t. + t = ⇣*{A}[𝟎]t. // qed. lemma stream_tls_tl (A) (n) (t): - (⫰⫰*[n]t) = ⫰*{A}[n]⫰t. + (⇣⇣*[n]t) = ⇣*{A}[n]⇣t. #A #n #t @(niter_appl … (stream_tl …)) qed. lemma stream_tls_succ (A) (n) (t): - (⫰⫰*[n]t) = ⫰*{A}[↑n]t. + (⇣⇣*[n]t) = ⇣*{A}[↑n]t. #A #n #t @(niter_succ … (stream_tl …)) qed. lemma stream_tls_swap (A) (n) (t): - (⫰*[n]⫰t) = ⫰*{A}[↑n]t. + (⇣*[n]⇣t) = ⇣*{A}[↑n]t. // qed. diff --git a/matita/matita/contribs/lambdadelta/ground/lib/stream_tls_eq.ma b/matita/matita/contribs/lambdadelta/ground/lib/stream_tls_eq.ma index 0f65086e5..de88a638b 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/stream_tls_eq.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/stream_tls_eq.ma @@ -20,7 +20,7 @@ include "ground/lib/stream_tls.ma". (* Constructions with stream_eq *********************************************) lemma stream_tls_eq_repl (A) (n): - stream_eq_repl A (λt1,t2. ⫰*[n] t1 ≗ ⫰*[n] t2). + stream_eq_repl A (λt1,t2. ⇣*[n] t1 ≗ ⇣*[n] t2). #A #n @(nat_ind_succ … n) -n // #n #IH * #n1 #t1 * #n2 #t2 #H elim (stream_eq_inv_cons_bi … H) /2 width=7 by/ diff --git a/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_2.ma b/matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrow_2.ma similarity index 83% rename from matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_2.ma rename to matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrow_2.ma index 765c2c0c3..4614cf3a3 100644 --- a/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_2.ma +++ b/matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrow_2.ma @@ -14,14 +14,14 @@ (* GROUND NOTATION **********************************************************) -notation < "hvbox( ⫰ term 75 a )" +notation < "hvbox( ⇣ term 75 a )" non associative with precedence 75 - for @{ 'DownSpoon $S $a }. + for @{ 'DownDashedArrow $S $a }. -notation > "hvbox( ⫰ term 75 a )" +notation > "hvbox( ⇣ term 75 a )" non associative with precedence 75 - for @{ 'DownSpoon ? $a }. + for @{ 'DownDashedArrow ? $a }. -notation > "hvbox( ⫰{ term 46 S } break term 75 a )" +notation > "hvbox( ⇣{ term 46 S } break term 75 a )" non associative with precedence 75 - for @{ 'DownSpoon $S $a }. + for @{ 'DownDashedArrow $S $a }. diff --git a/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_3.ma b/matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrowstar_3.ma similarity index 79% rename from matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_3.ma rename to matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrowstar_3.ma index 5250539d1..919695181 100644 --- a/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_3.ma +++ b/matita/matita/contribs/lambdadelta/ground/notation/functions/downdashedarrowstar_3.ma @@ -14,14 +14,14 @@ (* GROUND NOTATION **********************************************************) -notation < "hvbox( ⫰*[ break term 46 n ] break term 75 a )" +notation < "hvbox( ⇣*[ break term 46 n ] break term 75 a )" non associative with precedence 75 - for @{ 'DownSpoonStar $S $n $a }. + for @{ 'DownDashedArrowStar $S $n $a }. -notation > "hvbox( ⫰*[ break term 46 n ] break term 75 a )" +notation > "hvbox( ⇣*[ break term 46 n ] break term 75 a )" non associative with precedence 75 - for @{ 'DownSpoonStar ? $n $a }. + for @{ 'DownDashedArrowStar ? $n $a }. -notation > "hvbox( ⫰*{ term 46 S }[ break term 46 n ] break term 75 a )" +notation > "hvbox( ⇣*{ term 46 S }[ break term 46 n ] break term 75 a )" non associative with precedence 75 - for @{ 'DownSpoonStar $S $n $a }. + for @{ 'DownDashedArrowStar $S $n $a }. diff --git a/matita/matita/contribs/lambdadelta/ground/notation/functions/droppred_1.ma b/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_1.ma similarity index 94% rename from matita/matita/contribs/lambdadelta/ground/notation/functions/droppred_1.ma rename to matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_1.ma index d4e0f0354..e4bc3eb13 100644 --- a/matita/matita/contribs/lambdadelta/ground/notation/functions/droppred_1.ma +++ b/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoon_1.ma @@ -14,6 +14,6 @@ (* GROUND NOTATION **********************************************************) -notation "hvbox( ⫱ term 75 T )" +notation "hvbox( ⫰ term 75 T )" non associative with precedence 75 - for @{ 'DropPred $T }. + for @{ 'DownSpoon $T }. diff --git a/matita/matita/contribs/lambdadelta/ground/notation/functions/droppreds_2.ma b/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_2.ma similarity index 92% rename from matita/matita/contribs/lambdadelta/ground/notation/functions/droppreds_2.ma rename to matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_2.ma index 86829e053..03f188bd7 100644 --- a/matita/matita/contribs/lambdadelta/ground/notation/functions/droppreds_2.ma +++ b/matita/matita/contribs/lambdadelta/ground/notation/functions/downspoonstar_2.ma @@ -14,6 +14,6 @@ (* GROUND NOTATION **********************************************************) -notation "hvbox( ⫱ *[ term 46 n ] break term 75 T )" +notation "hvbox( ⫰ *[ term 46 n ] break term 75 T )" non associative with precedence 75 - for @{ 'DropPreds $n $T }. + for @{ 'DownSpoonStar $n $T }. diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_after_ist.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_after_ist.ma index c8051078a..ecca35eb7 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_after_ist.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_after_ist.ma @@ -39,7 +39,7 @@ cases (gr_after_inv_push_sn … H1f … H1) -H1f * #g21 #g #H1g #H21 #H | cases (gr_after_inv_push_sn_next … H2f … H1 H) -f1 -f #g22 #H2g #H22 @(gr_eq_next … H21 H22) -f21 -f22 ] -@(gr_after_inj_unit_aux (⫱*[↓p]g1) … (⫱*[↓p]g)) -gr_after_inj_unit_aux +@(gr_after_inj_unit_aux (⫰*[↓p]g1) … (⫰*[↓p]g)) -gr_after_inj_unit_aux /2 width=1 by gr_after_tls_sn_tls, gr_ist_tls, gr_pat_unit_succ_tls/ qed-. diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_nat_uni_tls.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_nat_uni_tls.ma index cef9bd7e4..632d35f6c 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_nat_uni_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_nat_uni_tls.ma @@ -24,7 +24,7 @@ include "ground/relocation/gr_after_isi.ma". (*** after_uni_dx *) lemma gr_after_nat_uni (l2) (l1): ∀f2. @↑❪l1, f2❫ ≘ l2 → - ∀f. f2 ⊚ 𝐮❨l1❩ ≘ f → 𝐮❨l2❩ ⊚ ⫱*[l2] f2 ≘ f. + ∀f. f2 ⊚ 𝐮❨l1❩ ≘ f → 𝐮❨l2❩ ⊚ ⫰*[l2] f2 ≘ f. #l2 @(nat_ind_succ … l2) -l2 [ #l1 #f2 #Hf2 #f #Hf elim (gr_nat_inv_zero_dx … Hf2) -Hf2 // #g2 #H1 #H2 destruct @@ -45,7 +45,7 @@ qed. (*** after_uni_sn *) lemma gr_nat_after_uni_tls (l2) (l1): ∀f2. @↑❪l1, f2❫ ≘ l2 → - ∀f. 𝐮❨l2❩ ⊚ ⫱*[l2] f2 ≘ f → f2 ⊚ 𝐮❨l1❩ ≘ f. + ∀f. 𝐮❨l2❩ ⊚ ⫰*[l2] f2 ≘ f → f2 ⊚ 𝐮❨l1❩ ≘ f. #l2 @(nat_ind_succ … l2) -l2 [ #l1 #f2 #Hf2 #f #Hf elim (gr_nat_inv_zero_dx … Hf2) -Hf2 // #g2 #H1 #H2 destruct diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_tls.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_tls.ma index b7b5fc7fb..4c0623e6e 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_tls.ma @@ -24,7 +24,7 @@ include "ground/relocation/gr_after.ma". (*** after_tls *) lemma gr_after_tls_sn_tls (n): ∀f1,f2,f. @❪𝟏, f1❫ ≘ ↑n → - f1 ⊚ f2 ≘ f → ⫱*[n]f1 ⊚ f2 ≘ ⫱*[n]f. + f1 ⊚ f2 ≘ f → ⫰*[n]f1 ⊚ f2 ≘ ⫰*[n]f. #n @(nat_ind_succ … n) -n // #n #IH #f1 #f2 #f #Hf1 #Hf cases (gr_pat_inv_unit_succ … Hf1) -Hf1 [ |*: // ] #g1 #Hg1 #H1 diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_uni_tls.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_uni_tls.ma index 40853b262..fe1286668 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_uni_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_after_pat_uni_tls.ma @@ -25,7 +25,7 @@ include "ground/relocation/gr_after_isi.ma". (*** after_uni_succ_dx *) lemma gr_after_pat_uni (i2) (i1): ∀f2. @❪i1, f2❫ ≘ i2 → - ∀f. f2 ⊚ 𝐮❨i1❩ ≘ f → 𝐮❨i2❩ ⊚ ⫱*[i2] f2 ≘ f. + ∀f. f2 ⊚ 𝐮❨i1❩ ≘ f → 𝐮❨i2❩ ⊚ ⫰*[i2] f2 ≘ f. #i2 elim i2 -i2 [ #i1 #f2 #Hf2 #f #Hf elim (gr_pat_inv_unit_dx … Hf2) -Hf2 // #g2 #H1 #H2 destruct @@ -47,7 +47,7 @@ qed. (*** after_uni_succ_sn *) lemma gr_pat_after_uni_tls (i2) (i1): ∀f2. @❪i1, f2❫ ≘ i2 → - ∀f. 𝐮❨i2❩ ⊚ ⫱*[i2] f2 ≘ f → f2 ⊚ 𝐮❨i1❩ ≘ f. + ∀f. 𝐮❨i2❩ ⊚ ⫰*[i2] f2 ≘ f → f2 ⊚ 𝐮❨i1❩ ≘ f. #i2 elim i2 -i2 [ #i1 #f2 #Hf2 #f #Hf elim (gr_pat_inv_unit_dx … Hf2) -Hf2 // #g2 #H1 #H2 destruct diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter.ma index bbac0036c..2ec6991cf 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter.ma @@ -217,8 +217,8 @@ qed-. (*** coafter_inv_tl1 *) lemma gr_coafter_inv_tl_dx: - ∀g2,g1,g. g2 ~⊚ ⫱g1 ≘ g → - ∃∃f. ⫯g2 ~⊚ g1 ≘ f & ⫱f = g. + ∀g2,g1,g. g2 ~⊚ ⫰g1 ≘ g → + ∃∃f. ⫯g2 ~⊚ g1 ≘ f & ⫰f = g. #g2 #g1 #g elim (gr_map_split_tl g1) #H1 #H2 [ /3 width=7 by gr_coafter_refl, ex2_intro/ @@ -228,8 +228,8 @@ qed-. (*** coafter_inv_tl0 *) lemma gr_coafter_inv_tl: - ∀g2,g1,g. g2 ~⊚ g1 ≘ ⫱g → - ∃∃f1. ⫯g2 ~⊚ f1 ≘ g & ⫱f1 = g1. + ∀g2,g1,g. g2 ~⊚ g1 ≘ ⫰g → + ∃∃f1. ⫯g2 ~⊚ f1 ≘ g & ⫰f1 = g1. #g2 #g1 #g elim (gr_map_split_tl g) #H1 #H2 [ /3 width=7 by gr_coafter_refl, ex2_intro/ diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_coafter_ist.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_coafter_ist.ma index f1e633463..9d79801dc 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_coafter_ist.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_coafter_ist.ma @@ -38,7 +38,7 @@ cases (gr_coafter_inv_push_sn … H1f … H1) -H1f * #g21 #g #H1g #H21 #H | cases (gr_coafter_inv_push_sn_next … H2f … H1 H) -f1 -f #g22 #H2g #H22 @(gr_eq_next … H21 H22) -f21 -f22 ] -@(gr_coafter_inj_unit_aux (⫱*[↓n]g1) … (⫱*[↓n]g)) -gr_coafter_inj_unit_aux +@(gr_coafter_inj_unit_aux (⫰*[↓n]g1) … (⫰*[↓n]g)) -gr_coafter_inj_unit_aux /2 width=1 by gr_coafter_tls_bi_tls, gr_ist_tls, gr_pat_unit_succ_tls/ qed-. diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls.ma index 6d953f203..0402e2929 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls.ma @@ -23,7 +23,7 @@ include "ground/relocation/gr_coafter.ma". (*** coafter_tls *) lemma gr_coafter_tls_bi_tls (n2) (n1): ∀f1,f2,f. @↑❪n1, f1❫ ≘ n2 → - f1 ~⊚ f2 ≘ f → ⫱*[n2]f1 ~⊚ ⫱*[n1]f2 ≘ ⫱*[n2]f. + f1 ~⊚ f2 ≘ f → ⫰*[n2]f1 ~⊚ ⫰*[n1]f2 ≘ ⫰*[n2]f. #n2 @(nat_ind_succ … n2) -n2 [ #n1 | #n2 #IH * [| #n1 ] ] #f1 #f2 #f #Hf1 #Hf [ elim (gr_nat_inv_zero_dx … Hf1) -Hf1 [ |*: // ] #g1 #Hg1 #H1 destruct // | elim (gr_nat_inv_zero_succ … Hf1) -Hf1 [ |*: // ] #g1 #Hg1 #H1 @@ -41,5 +41,5 @@ qed. (*** coafter_tls_O *) lemma gr_coafter_tls_sn_tls: ∀n,f1,f2,f. @↑❪𝟎, f1❫ ≘ n → - f1 ~⊚ f2 ≘ f → ⫱*[n]f1 ~⊚ f2 ≘ ⫱*[n]f. + f1 ~⊚ f2 ≘ f → ⫰*[n]f1 ~⊚ f2 ≘ ⫰*[n]f. /2 width=1 by gr_coafter_tls_bi_tls/ qed. diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls_pushs.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls_pushs.ma index 524e1d881..d42709290 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls_pushs.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_nat_tls_pushs.ma @@ -24,7 +24,7 @@ include "ground/relocation/gr_coafter.ma". (*** coafter_fwd_pushs *) lemma gr_coafter_des_pushs_dx (n) (m): ∀g2,f1,g. g2 ~⊚ ⫯*[m]f1 ≘ g → @↑❪m, g2❫ ≘ n → - ∃∃f. ⫱*[n]g2 ~⊚ f1 ≘ f & ⫯*[n] f = g. + ∃∃f. ⫰*[n]g2 ~⊚ f1 ≘ f & ⫯*[n] f = g. #n @(nat_ind_succ … n) -n [ #m #g2 #f1 #g #Hg #H elim (gr_nat_inv_zero_dx … H) -H [|*: // ] #f2 #H1 #H2 destruct diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_pat_tls.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_pat_tls.ma index a2c00145b..529b4caa5 100644 --- a/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_pat_tls.ma +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_coafter_pat_tls.ma @@ -23,7 +23,7 @@ include "ground/relocation/gr_coafter_nat_tls.ma". (*** coafter_tls_succ *) lemma gr_coafter_tls_tl_tls: ∀g2,g1,g. g2 ~⊚ g1 ≘ g → - ∀j. @❪𝟏, g2❫ ≘ j → ⫱*[j]g2 ~⊚ ⫱g1 ≘ ⫱*[j]g. + ∀j. @❪𝟏, g2❫ ≘ j → ⫰*[j]g2 ~⊚ ⫰g1 ≘ ⫰*[j]g. #g2 #g1 #g #Hg #j #Hg2 lapply (gr_nat_pred_bi … Hg2) -Hg2 #Hg2 lapply (gr_coafter_tls_bi_tls … Hg2 … Hg) -Hg #Hg @@ -36,7 +36,7 @@ qed. (* Note: parked for now lemma coafter_fwd_xpx_pushs: ∀g2,f1,g,i,j. @❪i, g2❫ ≘ j → g2 ~⊚ ⫯*[i]⫯f1 ≘ g → - ∃∃f. ⫱*[↑j]g2 ~⊚ f1 ≘ f & ⫯*[j]⫯f = g. + ∃∃f. ⫰*[↑j]g2 ~⊚ f1 ≘ f & ⫯*[j]⫯f = g. #g2 #g1 #g #i #j #Hg2 (sex_inv_atom1 … H1) >(sex_inv_atom1 … H2) -H2 -H1 @@ -85,8 +85,8 @@ theorem sex_conf (RN1) (RP1) (RN2) (RP2): qed-. lemma sex_repl (RN) (RP) (SN) (SP) (L1) (f): - (∀g,I,K1,n. ⇩[n] L1 ≘ K1.ⓘ[I] → ↑g = ⫱*[n] f → R_pw_replace3_sex … RN SN RN RP SN SP g K1 I) → - (∀g,I,K1,n. ⇩[n] L1 ≘ K1.ⓘ[I] → ⫯g = ⫱*[n] f → R_pw_replace3_sex … RP SP RN RP SN SP g K1 I) → + (∀g,I,K1,n. ⇩[n] L1 ≘ K1.ⓘ[I] → ↑g = ⫰*[n] f → R_pw_replace3_sex … RN SN RN RP SN SP g K1 I) → + (∀g,I,K1,n. ⇩[n] L1 ≘ K1.ⓘ[I] → ⫯g = ⫰*[n] f → R_pw_replace3_sex … RP SP RN RP SN SP g K1 I) → ∀L2. L1 ⪤[RN,RP,f] L2 → ∀K1. L1 ⪤[SN,SP,f] K1 → ∀K2. L2 ⪤[SN,SP,f] K2 → K1 ⪤[RN,RP,f] K2. #RN #RP #SN #SP #L1 elim L1 -L1 diff --git a/matita/matita/contribs/lambdadelta/static_2/static/frees.ma b/matita/matita/contribs/lambdadelta/static_2/static/frees.ma index 887703487..e9e6380d4 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/frees.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/frees.ma @@ -28,7 +28,7 @@ inductive frees: relation3 lenv term rtmap ≝ frees (L.ⓘ[I]) (#↑i) (⫯f) | frees_gref: ∀f,L,l. 𝐈❪f❫ → frees L (§l) f | frees_bind: ∀f1,f2,f,p,I,L,V,T. frees L V f1 → frees (L.ⓑ[I]V) T f2 → - f1 ⋓ ⫱f2 ≘ f → frees L (ⓑ[p,I]V.T) f + f1 ⋓ ⫰f2 ≘ f → frees L (ⓑ[p,I]V.T) f | frees_flat: ∀f1,f2,f,I,L,V,T. frees L V f1 → frees L T f2 → f1 ⋓ f2 ≘ f → frees L (ⓕ[I]V.T) f . @@ -143,7 +143,7 @@ lemma frees_inv_gref: ∀f,L,l. L ⊢ 𝐅+❪§l❫ ≘ f → 𝐈❪f❫. fact frees_inv_bind_aux: ∀f,L,X. L ⊢ 𝐅+❪X❫ ≘ f → ∀p,I,V,T. X = ⓑ[p,I]V.T → - ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓑ[I]V ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫱f2 ≘ f. + ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓑ[I]V ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫰f2 ≘ f. #f #L #X * -f -L -X [ #f #L #s #_ #q #J #W #U #H destruct | #f #i #_ #q #J #W #U #H destruct @@ -158,7 +158,7 @@ qed-. lemma frees_inv_bind: ∀f,p,I,L,V,T. L ⊢ 𝐅+❪ⓑ[p,I]V.T❫ ≘ f → - ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓑ[I]V ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫱f2 ≘ f. + ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓑ[I]V ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫰f2 ≘ f. /2 width=4 by frees_inv_bind_aux/ qed-. fact frees_inv_flat_aux: ∀f,L,X. L ⊢ 𝐅+❪X❫ ≘ f → ∀I,V,T. X = ⓕ[I]V.T → diff --git a/matita/matita/contribs/lambdadelta/static_2/static/frees_drops.ma b/matita/matita/contribs/lambdadelta/static_2/static/frees_drops.ma index 7b4f04950..69e0158e9 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/frees_drops.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/frees_drops.ma @@ -171,7 +171,7 @@ qed-. lemma frees_inv_lifts_SO: ∀b,f,L,U. L ⊢ 𝐅+❪U❫ ≘ f → ∀K. ⇩*[b,𝐔❨1❩] L ≘ K → ∀T. ⇧[1] T ≘ U → - K ⊢ 𝐅+❪T❫ ≘ ⫱f. + 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 /3 width=5 by frees_eq_repl_back, coafter_isid_inv_sn/ @@ -189,7 +189,7 @@ qed-. lemma frees_inv_drops_next: ∀f1,L1,T1. L1 ⊢ 𝐅+❪T1❫ ≘ f1 → ∀I2,L2,V2,i. ⇩[i] L1 ≘ L2.ⓑ[I2]V2 → - ∀g1. ↑g1 = ⫱*[i] f1 → + ∀g1. ↑g1 = ⫰*[i] f1 → ∃∃g2. L2 ⊢ 𝐅+❪V2❫ ≘ g2 & g2 ⊆ g1. #f1 #L1 #T1 #H elim H -f1 -L1 -T1 [ #f1 #L1 #s #Hf1 #I2 #L2 #V2 #j #_ #g1 #H1 -I2 -L1 -s diff --git a/matita/matita/contribs/lambdadelta/static_2/static/frees_fqup.ma b/matita/matita/contribs/lambdadelta/static_2/static/frees_fqup.ma index 05500252c..0ae38b461 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/frees_fqup.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/frees_fqup.ma @@ -39,7 +39,7 @@ lemma frees_total: ∀L,T. ∃f. L ⊢ 𝐅+❪T❫ ≘ f. | #p #I #V #T #HG #HL #HT destruct elim (IH G L V) // #f1 #HV elim (IH G (L.ⓑ[I]V) T) -IH // #f2 #HT - elim (sor_isfin_ex f1 (⫱f2)) + elim (sor_isfin_ex f1 (⫰f2)) /3 width=6 by frees_fwd_isfin, frees_bind, isfin_tl, ex_intro/ | #I #V #T #HG #HL #HT destruct elim (IH G L V) // #f1 #HV @@ -53,7 +53,7 @@ qed-. theorem frees_bind_void: ∀f1,L,V. L ⊢ 𝐅+❪V❫ ≘ f1 → ∀f2,T. L.ⓧ ⊢ 𝐅+❪T❫ ≘ f2 → - ∀f. f1 ⋓ ⫱f2 ≘ f → ∀p,I. L ⊢ 𝐅+❪ⓑ[p,I]V.T❫ ≘ f. + ∀f. f1 ⋓ ⫰f2 ≘ f → ∀p,I. L ⊢ 𝐅+❪ⓑ[p,I]V.T❫ ≘ f. #f1 #L #V #Hf1 #f2 #T #Hf2 #f #Hf #p #I elim (frees_total (L.ⓑ[I]V) T) #f0 #Hf0 lapply (lsubr_lsubf … Hf2 … Hf0) -Hf2 /2 width=5 by lsubr_unit/ #H02 @@ -81,7 +81,7 @@ qed-. lemma frees_inv_bind_void: ∀f,p,I,L,V,T. L ⊢ 𝐅+❪ⓑ[p,I]V.T❫ ≘ f → - ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓧ ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫱f2 ≘ f. + ∃∃f1,f2. L ⊢ 𝐅+❪V❫ ≘ f1 & L.ⓧ ⊢ 𝐅+❪T❫ ≘ f2 & f1 ⋓ ⫰f2 ≘ f. #f #p #I #L #V #T #H elim (frees_inv_bind … H) -H #f1 #f2 #Hf1 #Hf2 #Hf elim (frees_total (L.ⓧ) T) #f0 #Hf0 @@ -119,7 +119,7 @@ lemma frees_ind_void (Q:relation3 …): ∀f,L,l. 𝐈❪f❫ → Q L (§l) f ) → ( ∀f1,f2,f,p,I,L,V,T. - L ⊢ 𝐅+❪V❫ ≘ f1 → L.ⓧ ⊢𝐅+❪T❫≘ f2 → f1 ⋓ ⫱f2 ≘ f → + L ⊢ 𝐅+❪V❫ ≘ f1 → L.ⓧ ⊢𝐅+❪T❫≘ f2 → f1 ⋓ ⫰f2 ≘ f → Q L V f1 → Q (L.ⓧ) T f2 → Q L (ⓑ[p,I]V.T) f ) → ( ∀f1,f2,f,I,L,V,T. diff --git a/matita/matita/contribs/lambdadelta/static_2/static/fsle.ma b/matita/matita/contribs/lambdadelta/static_2/static/fsle.ma index 191612548..659060756 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/fsle.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/fsle.ma @@ -22,7 +22,7 @@ include "static_2/static/frees.ma". definition fsle: bi_relation lenv term ≝ λL1,T1,L2,T2. ∃∃n1,n2,f1,f2. L1 ⊢ 𝐅+❪T1❫ ≘ f1 & L2 ⊢ 𝐅+❪T2❫ ≘ f2 & - L1 ≋ⓧ*[n1,n2] L2 & ⫱*[n1]f1 ⊆ ⫱*[n2]f2. + L1 ≋ⓧ*[n1,n2] L2 & ⫰*[n1]f1 ⊆ ⫰*[n2]f2. interpretation "free variables inclusion (restricted closure)" 'SubSetEq L1 T1 L2 T2 = (fsle L1 T1 L2 T2). diff --git a/matita/matita/contribs/lambdadelta/static_2/static/fsle_drops.ma b/matita/matita/contribs/lambdadelta/static_2/static/fsle_drops.ma index 110e0fd08..718a74a8a 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/fsle_drops.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/fsle_drops.ma @@ -68,7 +68,7 @@ lemma fsle_inv_lifts_sn: ∀T1,U1. ⇧[1] T1 ≘ U1 → * #n #m #f2 #g2 #Hf2 #Hg2 #HL #Hfg2 #p elim (lveq_inv_pair_pair … HL) -HL #HL #H1 #H2 destruct elim (frees_total L2 V2) #g1 #Hg1 -elim (sor_isfin_ex g1 (⫱g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ +elim (sor_isfin_ex g1 (⫰g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ lapply (frees_inv_lifts_SO (Ⓣ) … Hf2 … HTU1) [1,2: /3 width=4 by drops_refl, drops_drop/ ] -U1 #Hf2 lapply (sor_inv_sle_dx … Hg) #H0g diff --git a/matita/matita/contribs/lambdadelta/static_2/static/fsle_fqup.ma b/matita/matita/contribs/lambdadelta/static_2/static/fsle_fqup.ma index 242c3d52c..7965876e2 100644 --- a/matita/matita/contribs/lambdadelta/static_2/static/fsle_fqup.ma +++ b/matita/matita/contribs/lambdadelta/static_2/static/fsle_fqup.ma @@ -33,7 +33,7 @@ lemma fsle_shift: ∀L1,L2. |L1| = |L2| → elim (lveq_inj_length … H2L) // -H1L #H1 #H2 destruct lapply (lveq_inv_bind_O … H2L) -H2L #HL elim (frees_total L2 V) #g1 #Hg1 -elim (sor_isfin_ex g1 (⫱g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ +elim (sor_isfin_ex g1 (⫰g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ lapply (sor_inv_sle_dx … Hg) #H0g /4 width=10 by frees_bind, lveq_void_sn, sle_tl, sle_trans, ex4_4_intro/ qed. @@ -42,7 +42,7 @@ lemma fsle_bind_dx_sn: ∀L1,L2,V1,V2. ❪L1,V1❫ ⊆ ❪L2,V2❫ → ∀p,I,T2. ❪L1,V1❫ ⊆ ❪L2,ⓑ[p,I]V2.T2❫. #L1 #L2 #V1 #V2 * #n1 #m1 #f1 #g1 #Hf1 #Hg1 #HL12 #Hfg1 #p #I #T2 elim (frees_total (L2.ⓧ) T2) #g2 #Hg2 -elim (sor_isfin_ex g1 (⫱g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ +elim (sor_isfin_ex g1 (⫰g2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #g #Hg #_ @(ex4_4_intro … g Hf1 … HL12) (**) (* full auto too slow *) /4 width=5 by frees_bind_void, sor_inv_sle_sn, sor_tls, sle_trans/ qed. @@ -53,7 +53,7 @@ lemma fsle_bind_dx_dx: ∀L1,L2,T1,T2. ❪L1,T1❫ ⊆ ❪L2.ⓧ,T2❫ → |L1| elim (lveq_inv_void_dx_length … H HL12) -H -HL12 #m1 #HL12 #H1 #H2 destruct