]> matita.cs.unibo.it Git - helm.git/commitdiff
update in delayed_updating
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Mon, 27 Dec 2021 23:38:37 +0000 (00:38 +0100)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Mon, 27 Dec 2021 23:38:37 +0000 (00:38 +0100)
+ updated notation for lists
+ WIP on lift

19 files changed:
matita/matita/contribs/lambdadelta/delayed_updating/etc/path_etc.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleleft_2.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleright_2.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/comma_2.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/semicolon_2.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_2.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_4.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_4.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma
matita/matita/contribs/lambdadelta/delayed_updating/substitution/fsubst.ma
matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/substitution/path_dephi.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/syntax/bdd_term.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_balanced.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm_constructors.ma
matita/matita/predefined_virtuals.ml

diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/path_etc.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/path_etc.etc
new file mode 100644 (file)
index 0000000..e6a2ce5
--- /dev/null
@@ -0,0 +1,35 @@
+notation "hvbox( l1 ● break l2 )"
+  right associative with precedence 47
+  for @{ 'DoubleSemicolon $l1 $l2 }.
+
+notation "hvbox( hd ◗ break tl )"
+  right associative with precedence 47
+  for @{ 'Semicolon $hd $tl }.
+
+notation "hvbox( hd ◖ break tl )"
+  left associative with precedence 47
+  for @{ 'Comma $hd $tl }.
+
+lemma tmp1 (l1) (l2) (p): l1 ◗ l2 ◗ p = l1 ◗ (l2 ◗ p).
+// qed.
+
+lemma tmp2 (p) (l1) (l2): p ◖ l1 ◖ l2 = (p ◖ l1) ◖ l2.
+// qed.
+
+lemma tmp3 (p1) (p2) (p3): p1 ● p2 ● p3 = p1 ● (p2 ● p3).
+// qed.
+
+lemma tmp4 (l1) (p) (l2): l1 ◗ p ◖ l2 = l1 ◗ (p ◖ l2).
+// qed.
+
+lemma tmp5 (p1) (l) (p2): p1 ◖ l ● p2 = (p1 ◖ l) ● p2.
+// qed.
+
+lemma tmp6 (p1) (p2) (l): p1 ● p2 ◖ l  = p1 ● (p2 ◖ l).
+// qed.
+
+lemma tmp7 (l) (p1) (p2): l ◗ p1 ● p2 = l ◗ (p1 ● p2).
+// qed.
+
+lemma tmp8 (p1) (l) (p2): p1 ● l ◗ p2 = p1 ● (l ◗ p2).
+// qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleleft_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleleft_2.ma
new file mode 100644 (file)
index 0000000..fe96838
--- /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 DELAYED UPDATING ********************************************)
+
+notation "hvbox( hd ◖ break tl )"
+  left associative with precedence 47
+  for @{ 'BlackHalfCircleLeft $hd $tl }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleright_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/black_halfcircleright_2.ma
new file mode 100644 (file)
index 0000000..c58a186
--- /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 DELAYED UPDATING ********************************************)
+
+notation "hvbox( hd ◗ break tl )"
+  right associative with precedence 47
+  for @{ 'BlackHalfCircleRight $hd $tl }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/comma_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/comma_2.ma
deleted file mode 100644 (file)
index f2f318d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-(* NOTATION FOR DELAYED UPDATING ********************************************)
-
-notation "hvbox( hd , break tl )"
-  right associative with precedence 50
-  for @{ 'Comma $hd $tl }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/semicolon_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/semicolon_2.ma
deleted file mode 100644 (file)
index 81c4759..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-(* NOTATION FOR DELAYED UPDATING ********************************************)
-
-notation "hvbox( hd ; break tl )"
-  right associative with precedence 47
-  for @{ 'Semicolon $hd $tl }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_2.ma
new file mode 100644 (file)
index 0000000..ac803ab
--- /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 DELAYED UPDATING ********************************************)
+
+notation "hvbox( ↑ [ term 46 t1 ] break term 75 t2  )"
+  non associative with precedence 75
+  for @{ 'UpArrow $t1 $t2 }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_4.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/uparrow_4.ma
new file mode 100644 (file)
index 0000000..e9a85f9
--- /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                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* NOTATION FOR DELAYED UPDATING ********************************************)
+
+notation < "hvbox( ↑ ❨ term 46 k, break term 46 p, break term 46 f ❩ )"
+  non associative with precedence 75
+  for @{ 'UpArrow $S $k $p $f }.
+
+notation > "hvbox( ↑ ❨ term 46 k, break term 46 p, break term 46 f ❩ )"
+  non associative with precedence 75
+  for @{ 'UpArrow ? $k $p $f }.
+
+notation > "hvbox( ↑ { term 46 S } ❨ break term 46 k, break term 46 p, break term 46 f ❩ )"
+  non associative with precedence 75
+  for @{ 'UpArrow $S $k $p $f }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_4.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_4.ma
new file mode 100644 (file)
index 0000000..8622760
--- /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 DELAYED UPDATING ********************************************)
+
+notation "hvbox( t1 ➡ 'd' 'f' [ break term 46 p, break term 46 q ] break term 46 t2 )"
+   non associative with precedence 45
+   for @{ 'BlackRightArrow $t1 $p $q $t2 }.
index f0b3f5f319c56b603e94593c0355d2e8347df5ad..724168bdf800bc9ede762ee9f5493700704b30f9 100644 (file)
@@ -16,19 +16,16 @@ include "ground/xoa/ex_3_1.ma".
 include "delayed_updating/syntax/path_structure.ma".
 include "delayed_updating/syntax/path_balanced.ma".
 include "delayed_updating/substitution/fsubst.ma".
-(*
-include "delayed_updating/notation/functions/pitchforkleftarrow_3.ma".
-*)
+include "delayed_updating/notation/relations/black_rightarrow_4.ma".
 
 (* DELAYED FOCALIZED REDUCTION **********************************************)
 
 inductive dfr (p) (q) (t): predicate preterm ≝
 | dfr_beta (b) (n):
-  let r ≝ p;;(𝗔;b;;(𝗟;q,𝗱❨n❩)) in
-  r ϵ t → ⊓⊗b → dfr p q t (t[⋔r←t⋔p,𝗦])
+  let r ≝ p●𝗔◗b●𝗟◗q◖𝗱❨n❩ in
+  r ϵ t → ⊓⊗b → dfr p q t (t[⋔r←t⋔(p◖𝗦)])
 .
-(*
+
 interpretation
-  "focalized substitution (preterm)"
-  'PitchforkLeftArrow t p u = (fsubst p u t).
-*)
+  "delayed focalized reduction (preterm)"
+  'BlackRightArrow t1 p q t2 = (dfr p q t1 t2).
index 0ff05222bc6e2bb82958d0dac77077b1f76b48ff..53f18be3120d8f550ee58b5c70e97186f9926d8b 100644 (file)
@@ -20,8 +20,8 @@ include "delayed_updating/notation/functions/pitchforkleftarrow_3.ma".
 
 definition fsubst (p) (u): preterm → preterm ≝
            λt,q.
-           ∨∨ ∃∃r. r ϵ u & p ϵ ▵t & p;;r = q
-            | ∧∧ q ϵ t & (∀r. p;;r = q → ⊥) 
+           ∨∨ ∃∃r. r ϵ u & p ϵ ▵t & pr = q
+            | ∧∧ q ϵ t & (∀r. p●r = q → ⊥)
 .
 
 interpretation
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma
new file mode 100644 (file)
index 0000000..0b3dc7d
--- /dev/null
@@ -0,0 +1,82 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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/relocation/tr_compose.ma".
+include "ground/relocation/tr_uni.ma".
+include "delayed_updating/syntax/path.ma".
+include "delayed_updating/notation/functions/uparrow_4.ma".
+include "delayed_updating/notation/functions/uparrow_2.ma".
+
+(* LIFT FOR PATH ***********************************************************)
+
+(* Note: inner numeric labels are not liftable, so they are removed *)
+rec definition lift_gen (A:Type[0]) (k:?→?→A) (p) (f) on p ≝
+match p with
+[ list_empty     ⇒ k 𝐞 f
+| list_lcons l q ⇒
+  match l with
+  [ label_node_d n ⇒
+    match q with
+    [ list_empty     ⇒ lift_gen (A) (λp. k (𝗱❨f@❨n❩❩◗p)) q f
+    | list_lcons _ _ ⇒ lift_gen (A) k q (f∘𝐮❨n❩)
+    ]
+  | label_edge_L   ⇒ lift_gen (A) (λp. k (𝗟◗p)) q (⫯f)
+  | label_edge_A   ⇒ lift_gen (A) (λp. k (𝗔◗p)) q f
+  | label_edge_S   ⇒ lift_gen (A) (λp. k (𝗦◗p)) q f
+  ]
+].
+
+interpretation
+  "lift (gneric)"
+  'UpArrow A k p f = (lift_gen A k p f).
+
+definition proj_path (p:path) (f:tr_map) ≝ p.
+
+definition proj_rmap (p:path) (f:tr_map) ≝ f.
+
+interpretation
+  "lift (path)"
+  'UpArrow f p = (lift_gen ? proj_path p f).
+
+interpretation
+  "lift (relocation map)"
+  'UpArrow p f = (lift_gen ? proj_rmap p f).
+
+(* Basic constructions ******************************************************)
+
+lemma lift_L (A) (k) (p) (f):
+      ↑❨(λp. k (𝗟◗p)), p, ⫯f❩ = ↑{A}❨k, 𝗟◗p, f❩.
+// qed.
+
+(* Basic constructions with proj_path ***************************************)
+
+lemma lift_append (p) (f) (q):
+      q●↑[f]p = ↑❨(λp. proj_path (q●p)), p, f❩.
+#p elim p -p
+[ //
+| #l #p #IH #f #q cases l
+  [
+  | <lift_L in ⊢ (???%);
+    >(list_append_rcons_sn ? q) in ⊢ (???(??(λ_.%)??));
+    
+     <IH 
+  normalize >IH
+  | //   
+
+(* Constructions with append ************************************************)
+
+theorem lift_append_A (p2) (p1) (f):
+        (↑[f]p1)●𝗔◗↑[↑[p1]f]p2 = ↑[f](p1●𝗔◗p2).
+#p2 #p1 elim p1 -p1
+[ #f normalize 
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/path_dephi.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/path_dephi.ma
deleted file mode 100644 (file)
index f51295e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-include "ground/relocation/tr_pap.ma".
-include "delayed_updating/syntax/path.ma".
-
-(* DEPHI FOR PATH ***********************************************************)
-
-rec definition path_dephi (f) (p) on p ≝
-match p with
-[ list_empty     ⇒ 𝐞
-| list_lcons l q ⇒
-   match l with
-   [ label_node_d n ⇒ 𝗱❨f@❨n❩❩;path_dephi f q
-   | label_edge_L   ⇒ 𝗟;path_dephi (𝟏⨮f) q
-   | label_edge_A   ⇒ 𝗔;path_dephi f q
-   | label_edge_S   ⇒ 𝗦;path_dephi f q
-   ]
-].
index 26fb80e561757d7ba359140d507c971467d8be38..1f8dfd1b5187339e38c655d3206d5ec85f10f371 100644 (file)
@@ -39,11 +39,11 @@ interpretation
 
 lemma bdd_inv_in_comp_gen:
       ∀t,p. t ϵ 𝐃𝛗 → p ϵ t →
-      ∨∨ ∃∃n. #n ⇔ t & 𝗱❨n❩;𝐞 = p
-       | ∃∃u,q,n. u ϵ 𝐃𝛗 & q ϵ u & 𝛗n.u ⇔ t & 𝗱❨n❩;q = p
-       | ∃∃u,q. u ϵ 𝐃𝛗 & q ϵ u & 𝛌.u ⇔ t & 𝗟;q = p
-       | ∃∃v,u,q. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ u & @v.u ⇔ t & 𝗔;q = p
-       | ∃∃v,u,q. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ v & @v.u ⇔ t & 𝗦;q = p
+      ∨∨ ∃∃n. #n ⇔ t & 𝗱❨n❩𝐞 = p
+       | ∃∃u,q,n. u ϵ 𝐃𝛗 & q ϵ u & 𝛗n.u ⇔ t & 𝗱❨n❩q = p
+       | ∃∃u,q. u ϵ 𝐃𝛗 & q ϵ u & 𝛌.u ⇔ t & 𝗟q = p
+       | ∃∃v,u,q. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ u & @v.u ⇔ t & 𝗔q = p
+       | ∃∃v,u,q. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ v & @v.u ⇔ t & 𝗦q = p
 .
 #t #p #H elim H -H
 [ #n * /3 width=3 by or5_intro0, ex2_intro/
@@ -62,7 +62,7 @@ lemma bdd_inv_in_comp_gen:
 qed-.
 
 lemma bdd_inv_in_comp_d:
-      ∀t,q,n. t ϵ 𝐃𝛗 → 𝗱❨n❩;q ϵ t →
+      ∀t,q,n. t ϵ 𝐃𝛗 → 𝗱❨n❩q ϵ t →
       ∨∨ ∧∧ #n ⇔ t & 𝐞 = q
        | ∃∃u. u ϵ 𝐃𝛗 & q ϵ u & 𝛗n.u ⇔ t
 .
@@ -77,7 +77,7 @@ elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
 qed-.
 
 lemma bdd_inv_in_root_d:
-      ∀t,q,n. t ϵ 𝐃𝛗 → 𝗱❨n❩;q ϵ ▵t →
+      ∀t,q,n. t ϵ 𝐃𝛗 → 𝗱❨n❩q ϵ ▵t →
       ∨∨ ∧∧ #n ⇔ t & 𝐞 = q
        | ∃∃u. u ϵ 𝐃𝛗 & q ϵ ▵u & 𝛗n.u ⇔ t
 .
@@ -92,7 +92,7 @@ elim (bdd_inv_in_comp_d … Ht Hq) -Ht -Hq *
 qed-.
 
 lemma bdd_inv_in_comp_L:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗟;q ϵ t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗟q ϵ t →
       ∃∃u. u ϵ 𝐃𝛗 & q ϵ u & 𝛌.u ⇔ t
 .
 #t #q #Ht #Hq
@@ -106,7 +106,7 @@ elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
 qed-.
 
 lemma bdd_inv_in_root_L:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗟;q ϵ ▵t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗟q ϵ ▵t →
       ∃∃u. u ϵ 𝐃𝛗 & q ϵ ▵u & 𝛌.u ⇔ t.
 #t #q #Ht * #r #Hq
 elim (bdd_inv_in_comp_L … Ht Hq) -Ht -Hq
@@ -115,7 +115,7 @@ elim (bdd_inv_in_comp_L … Ht Hq) -Ht -Hq
 qed-.
 
 lemma bdd_inv_in_comp_A:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗔;q ϵ t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗔q ϵ t →
       ∃∃v,u. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ u & @v.u ⇔ t
 .
 #t #q #Ht #Hq
@@ -129,7 +129,7 @@ elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
 qed-.
 
 lemma bdd_inv_in_root_A:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗔;q ϵ ▵t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗔q ϵ ▵t →
       ∃∃v,u. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ ▵u & @v.u ⇔ t
 .
 #t #q #Ht * #r #Hq
@@ -139,7 +139,7 @@ elim (bdd_inv_in_comp_A … Ht Hq) -Ht -Hq
 qed-.
 
 lemma bdd_inv_in_comp_S:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗦;q ϵ t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗦q ϵ t →
       ∃∃v,u. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ v & @v.u ⇔ t
 .
 #t #q #Ht #Hq
@@ -153,7 +153,7 @@ elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
 qed-.
 
 lemma bdd_inv_in_root_S:
-      ∀t,q. t ϵ 𝐃𝛗 → 𝗦;q ϵ ▵t →
+      ∀t,q. t ϵ 𝐃𝛗 → 𝗦q ϵ ▵t →
       ∃∃v,u. v ϵ 𝐃𝛗 & u ϵ 𝐃𝛗 & q ϵ ▵v & @v.u ⇔ t
 .
 #t #q #Ht * #r #Hq
@@ -165,7 +165,7 @@ qed-.
 (* Advanced inversions ******************************************************)
 
 lemma bbd_mono_in_root_d:
-      ∀l,n,p,t. t ϵ 𝐃𝛗 → p,𝗱❨n❩ ϵ ▵t → p,l ϵ ▵t → 𝗱❨n❩ = l.
+      ∀l,n,p,t. t ϵ 𝐃𝛗 → p◖𝗱❨n❩ ϵ ▵t → p◖l ϵ ▵t → 𝗱❨n❩ = l.
 #l #n #p elim p -p
 [ #t #Ht <list_cons_comm <list_cons_comm #Hn #Hl
   elim (bdd_inv_in_root_d … Ht Hn) -Ht -Hn *
index 306c42a8c43ce1a2740171fa04e8fae80e60c71d..3c2be9aa34f5a85d3efe7ab9694ec1536770c13f 100644 (file)
 
 include "ground/lib/list_rcons.ma".
 include "ground/notation/functions/element_e_0.ma".
-include "ground/notation/functions/double_semicolon_2.ma".
+include "ground/notation/functions/black_circle_2.ma".
 include "delayed_updating/syntax/label.ma".
-include "delayed_updating/notation/functions/semicolon_2.ma".
-include "delayed_updating/notation/functions/comma_2.ma".
+include "delayed_updating/notation/functions/black_halfcircleright_2.ma".
+include "delayed_updating/notation/functions/black_halfcircleleft_2.ma".
 
 (* PATH *********************************************************************)
 
@@ -29,12 +29,12 @@ interpretation
 
 interpretation
   "left cons (paths)"
-  'Semicolon l p = (list_lcons label l p).
+  'BlackHalfCircleRight l p = (list_lcons label l p).
 
 interpretation
   "append (paths)"
-  'DoubleSemicolon l1 l2 = (list_append label l1 l2).
+  'BlackCircle l1 l2 = (list_append label l1 l2).
 
 interpretation
   "right cons (paths)"
-  'Comma p l = (list_append label p (list_lcons label l (list_empty label))).
+  'BlackHalfCircleLeft p l = (list_append label p (list_lcons label l (list_empty label))).
index 3226657d4fdf5db40e5d6bcd31eef9d2ffce21af..e28a95101395992539af1eb97f43d94f0f8cff85 100644 (file)
@@ -19,9 +19,9 @@ include "delayed_updating/notation/relations/predicate_squarecap_1.ma".
 
 (* This condition applies to a structural path *)
 inductive pbc: predicate path ≝
-| pbc_empty: pbc 𝐞
-| pbc_redex: ∀b. pbc b → pbc (𝗔;b,𝗟)
-| pbc_after: ∀b1,b2. pbc b1 → pbc b2 → pbc (b1;;b2)
+| pbc_empty: pbc 𝐞  
+| pbc_redex: ∀b. pbc b → pbc (𝗔◗b◖𝗟)
+| pbc_after: ∀b1,b2. pbc b1 → pbc b2 → pbc (b1b2)
 .
 
 interpretation
index d7608ba18cc41268dff09f4f27c6e065829a8cbb..5bf678ebe01edecc6abb6e061d592e809def6711 100644 (file)
@@ -23,9 +23,9 @@ match p with
 | list_lcons l q ⇒
    match l with
    [ label_node_d n ⇒ path_structure q
-   | label_edge_L   ⇒ 𝗟;path_structure q
-   | label_edge_A   ⇒ 𝗔;path_structure q
-   | label_edge_S   ⇒ 𝗦;path_structure q
+   | label_edge_L   ⇒ 𝗟path_structure q
+   | label_edge_A   ⇒ 𝗔path_structure q
+   | label_edge_S   ⇒ 𝗦path_structure q
    ]
 ].
 
index aabb5adae086e3bf10d98b1fe4f87783c8c3bda1..4ce09045380a7366bf8aefe467ade8f7baa14e60 100644 (file)
@@ -23,14 +23,14 @@ include "delayed_updating/notation/functions/uptriangle_1.ma".
 definition preterm: Type[0] ≝ 𝒫❨path❩.
 
 definition preterm_grafted: path → preterm → preterm ≝
-           λp,t,q. p;;q ϵ t.
+           λp,t,q. pq ϵ t.
 
 interpretation
   "grafted (preterm)"
   'Pitchfork t p = (preterm_grafted p t).
 
 definition preterm_root: preterm → preterm ≝
-           λt,q. ∃r. q;;r ϵ t.
+           λt,q. ∃r. qr ϵ t.
 
 interpretation
   "root (preterm)"
index 0cd0158c05e16f3016b4af5e1f24c4f2a8f0d363..003b8d1ce8ed74e479393a001c15145d578fb3cc 100644 (file)
@@ -21,15 +21,15 @@ include "delayed_updating/notation/functions/at_2.ma".
 (* CONSTRUCTORS FOR PRETERM *************************************************)
 
 definition preterm_node_0 (l): preterm ≝
-           λp. l;𝐞 = p.
+           λp. l𝐞 = p.
 
 definition preterm_node_1 (l): preterm → preterm ≝
-           λt,p. ∃∃q. q ϵ t & l;q = p.
+           λt,p. ∃∃q. q ϵ t & lq = p.
 
 definition preterm_node_2 (l1) (l2): preterm → preterm → preterm ≝
            λt1,t2,p.
-           ∨∨ ∃∃q. q ϵ t1 & l1;q = p
-            | ∃∃q. q ϵ t2 & l2;q = p.
+           ∨∨ ∃∃q. q ϵ t1 & l1q = p
+            | ∃∃q. q ϵ t2 & l2q = p.
 
 interpretation
   "outer variable reference by depth (preterm)"
@@ -50,7 +50,7 @@ interpretation
 (* Basic Inversions *********************************************************)
 
 lemma preterm_in_root_inv_lcons_oref:
-      ∀p,l,n. l;p ϵ ▵#n →
+      ∀p,l,n. lp ϵ ▵#n →
       ∧∧ 𝗱❨n❩ = l & 𝐞 = p.
 #p #l #n * #q
 <list_append_lcons_sn #H0 destruct -H0
@@ -59,7 +59,7 @@ elim (eq_inv_list_empty_append … e0) -e0 #H0 #_
 qed-.
 
 lemma preterm_in_root_inv_lcons_iref:
-      ∀t,p,l,n. l;p ϵ ▵𝛗n.t →
+      ∀t,p,l,n. lp ϵ ▵𝛗n.t →
       ∧∧ 𝗱❨n❩ = l & p ϵ ▵t.
 #t #p #l #n * #q
 <list_append_lcons_sn * #r #Hr #H0 destruct
@@ -67,7 +67,7 @@ lemma preterm_in_root_inv_lcons_iref:
 qed-.
 
 lemma preterm_in_root_inv_lcons_abst:
-      ∀t,p,l. l;p ϵ ▵𝛌.t →
+      ∀t,p,l. lp ϵ ▵𝛌.t →
       ∧∧ 𝗟 = l & p ϵ ▵t.
 #t #p #l * #q
 <list_append_lcons_sn * #r #Hr #H0 destruct
@@ -75,7 +75,7 @@ lemma preterm_in_root_inv_lcons_abst:
 qed-.
 
 lemma preterm_in_root_inv_lcons_appl:
-      ∀u,t,p,l. l;p ϵ ▵@u.t →
+      ∀u,t,p,l. lp ϵ ▵@u.t →
       ∨∨ ∧∧ 𝗦 = l & p ϵ ▵u
        | ∧∧ 𝗔 = l & p ϵ ▵t.
 #u #t #p #l * #q
index 1271e2c523bc135cc1c593d57c8456d730f73138..4dd5b0f5ebc8ec20643d8f083c2cadba872d0ef9 100644 (file)
@@ -1562,7 +1562,7 @@ let predefined_classes = [
  ["M"; "ℳ"; "𝕄"; "𝐌"; "Ⓜ"; ] ;
  ["n"; "𝕟"; "𝐧"; "𝛈"; "ⓝ"; ] ;
  ["N"; "ℕ"; "№"; "𝐍"; "Ⓝ"; ] ;
- ["o"; "θ"; "ϑ"; "𝕠"; "∘";  "⊚"; "ø"; "○"; "●"; "𝐨"; "𝛉"; "ⓞ"; ] ;
+ ["o"; "θ"; "ϑ"; "𝕠"; "∘";  "⊚"; "ø"; "○"; "●"; "◖"; "◗"; "𝐨"; "𝛉"; "ⓞ"; ] ;
  ["O"; "Θ"; "𝕆"; "𝐎"; "𝚯"; "𝚹"; "Ⓞ"; ] ;
  ["p"; "π"; "𝕡"; "𝐩"; "𝛑"; "ⓟ"; ] ;
  ["P"; "Π"; "℘"; "ℙ"; "𝐏"; "𝚷"; "Ⓟ"; "𝒫"; ] ;