]> matita.cs.unibo.it Git - helm.git/commitdiff
partial commit in delayed_updating
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 6 Jul 2022 12:23:57 +0000 (14:23 +0200)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 6 Jul 2022 12:23:57 +0000 (14:23 +0200)
+ reversing paths in component "syntax"
+ some renaming

20 files changed:
matita/matita/contribs/lambdadelta/delayed_updating/syntax/bdd_term.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/label.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_depth_labels.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head_depth.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_head_structure.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_height.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_height_labels.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_inner.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_proper.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure_depth.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_structure_inner.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/preterm.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/prototerm_constructors.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/prototerm_constructors_eq.ma
matita/matita/contribs/lambdadelta/delayed_updating/syntax/prototerm_proper_constructors.ma

index 9f8238432a9500c294b2478326efdc46d5c70abb..1eb11fc030bc8c9f0676f2d82b52b9450ad371aa 100644 (file)
@@ -24,8 +24,8 @@ include "ground/xoa/ex_5_3.ma".
 (* BY-DEPTH DELAYED (BDD) TERM **********************************************)
 
 inductive bdd: π’«β¨prototerm❩ β‰
-| bdd_oref: βˆ€n. bdd (⧣n)
-| bdd_iref: βˆ€t,n. bdd t β†’ bdd (𝛕n.t)
+| bdd_oref: βˆ€k. bdd (⧣k)
+| bdd_iref: βˆ€t,k. bdd t β†’ bdd (𝛕k.t)
 | bdd_abst: βˆ€t. bdd t β†’ bdd (π›Œ.t)
 | bdd_appl: βˆ€u,t. bdd u β†’ bdd t β†’ bdd (οΌ u.t)
 | bdd_conv: βˆ€t1,t2. t1 β‡” t2 β†’ bdd t1 β†’ bdd t2
index 98e63f06ba6e0c151e092ea65ff1634d9f644a96..6a607559cae0c07e5aaccd85230a8261f422771f 100644 (file)
@@ -35,7 +35,7 @@ inductive label: Type[0] β‰
 
 interpretation
   "variable reference by depth (label)"
-  'NodeLabelD p = (label_d p).
+  'NodeLabelD k = (label_d k).
 
 interpretation
   "mark (label)"
index 2d8abe30451f25628141476a53cf2fb629dd2a44..39ac9c46cadac95f0e179703cb87c55081337c90 100644 (file)
@@ -21,7 +21,8 @@ include "delayed_updating/syntax/label.ma".
 
 (* PATH *********************************************************************)
 
-(* Note: a path is a list of labels *) 
+(* Note: a path is a list of labels *)
+(* Note: constructed from the leaf (right end) to the root (left end) *)
 definition path β‰ list label.
 
 interpretation
@@ -29,13 +30,13 @@ interpretation
   'ElementE = (list_empty label).
 
 interpretation
-  "left cons (paths)"
-  'BlackHalfCircleRight l p = (list_lcons label l p).
+  "right cons (paths)"
+  'BlackHalfCircleLeft p l = (list_lcons label l p).
 
 interpretation
   "append (paths)"
-  'BlackCircle l1 l2 = (list_append label l1 l2).
+  'BlackCircle p q = (list_append label q p).
 
 interpretation
-  "right cons (paths)"
-  'BlackHalfCircleLeft p l = (list_append label p (list_lcons label l (list_empty label))).
+  "left cons (paths)"
+  'BlackHalfCircleRight l p = (list_append label p (list_lcons label l (list_empty label))).
index 474bbcbda501f43dd5de91697dd321d58ca33c7f..eff4eb16bfc12a40b3cb8fd2c96de00d9ecdd851 100644 (file)
@@ -40,53 +40,58 @@ interpretation
 lemma depth_empty: πŸŽ = β™­πž.
 // qed.
 
-lemma depth_d_sn (q) (n): β™­q = β™­(𝗱nβ——q).
+lemma depth_d_dx (p) (k):
+      β™­p = β™­(p◖𝗱k).
 // qed.
 
-lemma depth_m_sn (q): β™­q = β™­(𝗺◗q).
+lemma depth_m_dx (p):
+      β™­p = β™­(p◖𝗺).
 // qed.
 
-lemma depth_L_sn (q): β†‘β™­q = β™­(π—Ÿβ——q).
+lemma depth_L_dx (p):
+      β†‘β™­p = β™­(pβ—–π—Ÿ).
 // qed.
 
-lemma depth_A_sn (q): β™­q = β™­(𝗔◗q).
+lemma depth_A_dx (p):
+      β™­p = β™­(p◖𝗔).
 // qed.
 
-lemma depth_S_sn (q): β™­q = β™­(𝗦◗q).
+lemma depth_S_dx (p):
+      β™­p = β™­(p◖𝗦).
 // qed.
 
 (* Main constructions *******************************************************)
 
-theorem depth_append (p1) (p2):
-        (β™­p2)+(β™­p1) = β™­(p1●p2).
-#p1 elim p1 -p1 //
-* [ #n ] #p1 #IH #p2 <list_append_lcons_sn
-[ <depth_d_sn <depth_d_sn //
-| <depth_m_sn <depth_m_sn //
-| <depth_L_sn <depth_L_sn //
-| <depth_A_sn <depth_A_sn //
-| <depth_S_sn <depth_S_sn //
+theorem depth_append (p) (q):
+        (β™­p)+(β™­q) = β™­(p●q).
+#p #q elim q -q //
+* [ #k ] #q #IH <list_append_lcons_sn
+[ <depth_d_dx <depth_d_dx //
+| <depth_m_dx <depth_m_dx //
+| <depth_L_dx <depth_L_dx //
+| <depth_A_dx <depth_A_dx //
+| <depth_S_dx <depth_S_dx //
 ]
 qed.
 
-(* Constructions with list_rcons ********************************************)
+(* Constructions with path_lcons ********************************************)
 
-lemma depth_d_dx (p) (n):
-      β™­p = β™­(p◖𝗱n).
+lemma depth_d_sn (p) (k):
+      β™­p = β™­(𝗱kβ——p).
 // qed.
 
-lemma depth_m_dx (p):
-      β™­p = β™­(p◖𝗺).
+lemma depth_m_sn (p):
+      β™­p = β™­(𝗺◗p).
 // qed.
 
-lemma depth_L_dx (p):
-      β†‘β™­p = β™­(pβ—–π—Ÿ).
+lemma depth_L_sn (p):
+      β†‘β™­p = β™­(π—Ÿβ——p).
 // qed.
 
-lemma depth_A_dx (p):
-      β™­p = β™­(p◖𝗔).
+lemma depth_A_sn (p):
+      β™­p = β™­(𝗔◗p).
 // qed.
 
-lemma depth_S_dx (p):
-      β™­p = β™­(p◖𝗦).
+lemma depth_S_sn (p):
+      β™­p = β™­(𝗦◗p).
 // qed.
index 1993633de7ee5d0a043d45885c462334f77d9e39..791a09a51e843176ecbf90c2ccc02da9d647a0b5 100644 (file)
@@ -22,5 +22,5 @@ include "delayed_updating/syntax/path_labels.ma".
 lemma depth_labels_L (n):
       n = β™­(π—Ÿβˆ—βˆ—n).
 #n @(nat_ind_succ β€¦ n) -n //
-#n #IH <labels_succ <depth_L_sn //
+#n #IH <labels_succ <depth_L_dx //
 qed.
index 438c5e6a72eca2320049f0b0ba8bb8a5e4109ba1..4610e4f69954158d247c451c92832a7819ff2455 100644 (file)
@@ -19,25 +19,25 @@ include "ground/arith/nat_pred_succ.ma".
 
 (* HEAD FOR PATH ************************************************************)
 
-rec definition path_head (m) (p) on p: path β‰
-match m with
+rec definition path_head (n) (p) on p: path β‰
+match n with
 [ nzero  β‡’ πž
-| ninj o β‡’ 
+| ninj m β‡’
   match p with
-  [ list_empty     β‡’ π—Ÿβˆ—βˆ—m
+  [ list_empty     β‡’ π—Ÿβˆ—βˆ—n
   | list_lcons l q β‡’
     match l with
-    [ label_d n β‡’ lβ——(path_head (m+n) q)
-    | label_m   β‡’ lβ——(path_head m q)
-    | label_L   β‡’ lβ——(path_head (↓o) q)
-    | label_A   β‡’ lβ——(path_head m q)
-    | label_S   β‡’ lβ——(path_head m q)
+    [ label_d k β‡’ (path_head (n+k) q)β—–l
+    | label_m   β‡’ (path_head n q)β—–l
+    | label_L   β‡’ (path_head (↓m) q)β—–l
+    | label_A   β‡’ (path_head n q)β—–l
+    | label_S   β‡’ (path_head n q)β—–l
     ]
   ]
 ].
 
 interpretation
-  "head (reversed path)"
+  "head (path)"
   'DownArrowRight n p = (path_head n p).
 
 (* basic constructions ****************************************************)
@@ -50,26 +50,26 @@ lemma path_head_empty (n):
       (π—Ÿβˆ—βˆ—n) = β†³[n]𝐞.
 * // qed.
 
-lemma path_head_d_sn (p) (n) (m:pnat):
-      (𝗱m◗↳[↑n+m]p) = β†³[↑n](𝗱mβ——p).
+lemma path_head_d_dx (p) (n) (k:pnat):
+      (↳[↑n+k]p)◖𝗱k = β†³[↑n](p◖𝗱k).
 // qed.
 
-lemma path_head_m_sn (p) (n):
-      (𝗺◗↳[↑n]p) = β†³[↑n](𝗺◗p).
+lemma path_head_m_dx (p) (n):
+      (↳[↑n]p)◖𝗺 = β†³[↑n](p◖𝗺).
 // qed.
 
-lemma path_head_L_sn (p) (n):
-      (π—Ÿβ——β†³[n]p) = β†³[↑n](π—Ÿβ——p).
+lemma path_head_L_dx (p) (n):
+      (↳[n]p)β—–π—Ÿ = β†³[↑n](pβ—–π—Ÿ).
 #p #n
 whd in βŠ’ (???%); //
 qed.
 
-lemma path_head_A_sn (p) (n):
-      (𝗔◗↳[↑n]p) = β†³[↑n](𝗔◗p).
+lemma path_head_A_dx (p) (n):
+      (↳[↑n]p)◖𝗔 = β†³[↑n](p◖𝗔).
 // qed.
 
-lemma path_head_S_sn (p) (n):
-      (𝗦◗↳[↑n]p) = β†³[↑n](𝗦◗p).
+lemma path_head_S_dx (p) (n):
+      (↳[↑n]p)◖𝗦 = β†³[↑n](p◖𝗦).
 // qed.
 
 (* Basic inversions *********************************************************)
@@ -82,51 +82,51 @@ qed-.
 lemma eq_inv_path_empty_head (p) (n):
       (𝐞) = β†³[n]p β†’ πŸŽ = n.
 *
-[ #m <path_head_empty #H0
-  <(eq_inv_empty_labels β€¦ H0) -m //
-| * [ #n ] #p #n @(nat_ind_succ β€¦ n) -n // #m #_
-  [ <path_head_d_sn
-  | <path_head_m_sn
-  | <path_head_L_sn
-  | <path_head_A_sn
-  | <path_head_S_sn
+[ #n <path_head_empty #H0
+  <(eq_inv_empty_labels β€¦ H0) -n //
+| * [ #k ] #p #n @(nat_ind_succ β€¦ n) -n // #n #_
+  [ <path_head_d_dx
+  | <path_head_m_dx
+  | <path_head_L_dx
+  | <path_head_A_dx
+  | <path_head_S_dx
   ] #H0 destruct
 ]
 qed-.
 
-(* Constructions with list_append *******************************************)
+(* Constructions with path_append *******************************************)
 
 lemma path_head_refl_append (p) (q) (n):
-      q = β†³[n]q β†’ q = β†³[n](q●p).
+      q = β†³[n]q β†’ q = β†³[n](p●q).
 #p #q elim q -q
 [ #n #Hn <(eq_inv_path_empty_head β€¦ Hn) -Hn //
 | #l #q #IH #n @(nat_ind_succ β€¦ n) -n
-  [ #Hq | #n #_ cases l [ #m ] ]
+  [ #Hq | #n #_ cases l [ #k ] ]
   [ lapply (eq_inv_path_head_zero_dx β€¦ Hq) -Hq #Hq destruct
-  | <path_head_d_sn <path_head_d_sn
-  | <path_head_m_sn <path_head_m_sn
-  | <path_head_L_sn <path_head_L_sn
-  | <path_head_A_sn <path_head_A_sn
-  | <path_head_S_sn <path_head_S_sn
+  | <path_head_d_dx <path_head_d_dx
+  | <path_head_m_dx <path_head_m_dx
+  | <path_head_L_dx <path_head_L_dx
+  | <path_head_A_dx <path_head_A_dx
+  | <path_head_S_dx <path_head_S_dx
   ] #Hq
   elim (eq_inv_list_lcons_bi ????? Hq) -Hq #_ #Hq
   /3 width=1 by eq_f/
 ]
 qed-.
 
-(* Inversions with list_append **********************************************)
+(* Inversions with path_append **********************************************)
 
 lemma eq_inv_path_head_refl_append (p) (q) (n):
-      q = β†³[n](q●p) β†’ q = β†³[n]q.
+      q = β†³[n](p●q) β†’ q = β†³[n]q.
 #p #q elim q -q
 [ #n #Hn <(eq_inv_path_empty_head β€¦ Hn) -p //
 | #l #q #IH #n @(nat_ind_succ β€¦ n) -n //
-  #n #_ cases l [ #m ]
-  [ <path_head_d_sn <path_head_d_sn
-  | <path_head_m_sn <path_head_m_sn
-  | <path_head_L_sn <path_head_L_sn
-  | <path_head_A_sn <path_head_A_sn
-  | <path_head_S_sn <path_head_S_sn
+  #n #_ cases l [ #k ]
+  [ <path_head_d_dx <path_head_d_dx
+  | <path_head_m_dx <path_head_m_dx
+  | <path_head_L_dx <path_head_L_dx
+  | <path_head_A_dx <path_head_A_dx
+  | <path_head_S_dx <path_head_S_dx
   ] #Hq
   elim (eq_inv_list_lcons_bi ????? Hq) -Hq #_ #Hq
   /3 width=1 by eq_f/
index c561797c13097e939f1614ef83171c60a7dc8d7c..6283e2c211914bbc6fc8bdfe9f3ba7b8bb1204fa 100644 (file)
@@ -24,12 +24,12 @@ lemma path_head_depth (p) (n):
       n + β™―(↳[n]p) = β™­β†³[n]p.
 #p elim p -p // #l #p #IH
 #n @(nat_ind_succ β€¦ n) -n // #n #_
-cases l [ #m ]
-[ <path_head_d_sn <height_d_sn <depth_d_sn //
-| <path_head_m_sn <height_m_sn <depth_m_sn //
-| <path_head_L_sn <height_L_sn <depth_L_sn
+cases l [ #k ]
+[ <path_head_d_dx <height_d_dx <depth_d_dx <IH //
+| <path_head_m_dx <height_m_dx <depth_m_dx //
+| <path_head_L_dx <height_L_dx <depth_L_dx
   <nplus_succ_sn //
-| <path_head_A_sn <height_A_sn <depth_A_sn //
-| <path_head_S_sn <height_S_sn <depth_S_sn //
+| <path_head_A_dx <height_A_dx <depth_A_dx //
+| <path_head_S_dx <height_S_dx <depth_S_dx //
 ]
 qed-. (**) (* gets in the way with auto *)
index e1605752c28ca72d13532e6b2ac93a3f40cb9500..37ca7be2ca5a3857c9dac95b506d964f56faeb74 100644 (file)
@@ -19,21 +19,21 @@ include "delayed_updating/syntax/path_structure_labels.ma".
 
 (* Constructions with structure *********************************************)
 
-lemma path_head_structure_height (p) (m):
-      βŠ—↳[m]p = β†³[m+♯↳[m]p]βŠ—p.
+lemma path_head_structure_height (p) (n):
+      βŠ—↳[n]p = β†³[n+♯↳[n]p]βŠ—p.
 #p elim p -p //
-#l #p #IH #m @(nat_ind_succ β€¦ m) -m //
-#m #_ cases l [ #n ]
-[ <height_d_sn <structure_d_sn //
-| <structure_m_sn //
-| <structure_L_sn //
-| <height_A_sn <structure_A_sn <nplus_succ_sn <path_head_A_sn //
-| <height_S_sn <structure_S_sn <nplus_succ_sn <path_head_S_sn //
+#l #p #IH #n @(nat_ind_succ β€¦ n) -n //
+#n #_ cases l [ #k ]
+[ <height_d_dx <structure_d_dx //
+| <structure_m_dx //
+| <structure_L_dx //
+| <height_A_dx <structure_A_dx <nplus_succ_sn <path_head_A_dx //
+| <height_S_dx <structure_S_dx <nplus_succ_sn <path_head_S_dx //
 ]
 qed.
 
-lemma path_head_structure_depth (p) (m):
-      βŠ—↳[m]p = β†³[♭↳[m]p]βŠ—p.
-#p #m
+lemma path_head_structure_depth (p) (n):
+      βŠ—↳[n]p = β†³[♭↳[n]p]βŠ—p.
+#p #n
 <path_head_depth //
 qed.
index 73c7e21e90de90fa15b338d4e71ecc046983af89..934df56d0dcce4c06942c958a004bc6090224d15 100644 (file)
@@ -23,7 +23,7 @@ match p with
 [ list_empty     β‡’ πŸŽ
 | list_lcons l q β‡’
   match l with
-  [ label_d n β‡’ n + height q
+  [ label_d k β‡’ height q + k
   | label_m   β‡’ height q
   | label_L   β‡’ height q
   | label_A   β‡’ height q
@@ -40,53 +40,58 @@ interpretation
 lemma height_empty: πŸŽ = β™―𝐞.
 // qed.
 
-lemma height_d_sn (q) (n): ninj n+β™―q = β™―(𝗱nβ——q).
+lemma height_d_dx (p) (k:pnat):
+      (β™―p)+k = β™―(p◖𝗱k).
 // qed.
 
-lemma height_m_sn (q): β™―q = β™―(𝗺◗q).
+lemma height_m_dx (p):
+      (β™―p) = β™―(p◖𝗺).
 // qed.
 
-lemma height_L_sn (q): β™―q = β™―(π—Ÿβ——q).
+lemma height_L_dx (p):
+      (β™―p) = β™―(pβ—–π—Ÿ).
 // qed.
 
-lemma height_A_sn (q): β™―q = β™―(𝗔◗q).
+lemma height_A_dx (p):
+      (β™―p) = β™―(p◖𝗔).
 // qed.
 
-lemma height_S_sn (q): β™―q = β™―(𝗦◗q).
+lemma height_S_dx (p):
+      (β™―p) = β™―(p◖𝗦).
 // qed.
 
 (* Main constructions *******************************************************)
 
-theorem height_append (p1) (p2):
-        (β™―p2+β™―p1) = β™―(p1●p2).
-#p1 elim p1 -p1 //
-* [ #n ] #p1 #IH #p2 <list_append_lcons_sn
-[ <height_d_sn <height_d_sn //
-| <height_m_sn <height_m_sn //
-| <height_L_sn <height_L_sn //
-| <height_A_sn <height_A_sn //
-| <height_S_sn <height_S_sn //
+theorem height_append (p) (q):
+        (β™―p+β™―q) = β™―(p●q).
+#p #q elim q -q //
+* [ #k ] #q #IH <list_append_lcons_sn
+[ <height_d_dx <height_d_dx //
+| <height_m_dx <height_m_dx //
+| <height_L_dx <height_L_dx //
+| <height_A_dx <height_A_dx //
+| <height_S_dx <height_S_dx //
 ]
 qed.
 
-(* Constructions with list_rcons ********************************************)
+(* Constructions with path_lcons ********************************************)
 
-lemma height_d_dx (p) (n):
-      (β™―p)+(ninj n) = β™―(p◖𝗱n).
+lemma height_d_sn (p) (k:pnat):
+      k+β™―p = β™―(𝗱kβ——p).
 // qed.
 
-lemma height_m_dx (p):
-      (β™―p) = β™―(p◖𝗺).
+lemma height_m_sn (p):
+      β™―p = β™―(𝗺◗p).
 // qed.
 
-lemma height_L_dx (p):
-      (β™―p) = β™―(pβ—–π—Ÿ).
+lemma height_L_sn (p):
+      β™―p = β™―(π—Ÿβ——p).
 // qed.
 
-lemma height_A_dx (p):
-      (β™―p) = β™―(p◖𝗔).
+lemma height_A_sn (p):
+      β™―p = β™―(𝗔◗p).
 // qed.
 
-lemma height_S_dx (p):
-      (β™―p) = β™―(p◖𝗦).
+lemma height_S_sn (p):
+      β™―p = β™―(𝗦◗p).
 // qed.
index cf9a6d5c2709f3e43b06c19a91c25aa12ff2251a..fb55c3606ac585ab1893242688812096203e8e7a 100644 (file)
@@ -22,5 +22,5 @@ include "delayed_updating/syntax/path_labels.ma".
 lemma height_labels_L (n):
       (𝟎) = β™―(π—Ÿβˆ—βˆ—n).
 #n @(nat_ind_succ β€¦ n) -n //
-#n #IH <labels_succ <height_L_sn //
+#n #IH <labels_succ <height_L_dx //
 qed.
index 8e9fccefefdda175bf27251e28d63101575540ba..98501e8df7a59131f8b31a6002021604b4899db3 100644 (file)
@@ -19,7 +19,7 @@ include "ground/lib/subset.ma".
 (* INNER CONDITION FOR PATH *************************************************)
 
 definition pic: predicate path β‰
-           Ξ»p. βˆ€q,n. q◖𝗱n = p β†’ βŠ₯
+           Ξ»p. βˆ€q,k. q◖𝗱k = p β†’ βŠ₯
 .
 
 interpretation
@@ -28,34 +28,34 @@ interpretation
 
 (* Basic constructions ******************************************************)
 
-lemma pic_empty: πž Ο΅ πˆ.
-#q #n #H0
-elim (eq_inv_list_empty_rcons ??? (sym_eq β€¦ H0))
+lemma pic_empty:
+      (𝐞) Ο΅ πˆ.
+#q #k #H0 destruct
 qed.
 
-lemma pic_m_dx (p): p◖𝗺 Ο΅ πˆ.
-#p #q #n #H0
-elim (eq_inv_list_rcons_bi ????? H0) -H0 #_ #H0 destruct
+lemma pic_m_dx (p):
+      p◖𝗺 Ο΅ πˆ.
+#p #q #k #H0 destruct
 qed.
 
-lemma pic_L_dx (p): pβ—–π—Ÿ Ο΅ πˆ.
-#p #q #n #H0
-elim (eq_inv_list_rcons_bi ????? H0) -H0 #_ #H0 destruct
+lemma pic_L_dx (p):
+      pβ—–π—Ÿ Ο΅ πˆ.
+#p #q #k #H0 destruct
 qed.
 
-lemma pic_A_dx (p): p◖𝗔 Ο΅ πˆ.
-#p #q #n #H0
-elim (eq_inv_list_rcons_bi ????? H0) -H0 #_ #H0 destruct
+lemma pic_A_dx (p):
+      p◖𝗔 Ο΅ πˆ.
+#p #q #k #H0 destruct
 qed.
 
-lemma pic_S_dx (p): p◖𝗦 Ο΅ πˆ.
-#p #q #n #H0
-elim (eq_inv_list_rcons_bi ????? H0) -H0 #_ #H0 destruct
+lemma pic_S_dx (p):
+      p◖𝗦 Ο΅ πˆ.
+#p #q #k #H0 destruct
 qed.
 
 (* Basic inversions ********************************************************)
 
-lemma pic_inv_d_dx (p) (n):
-      p◖𝗱n Ο΅ πˆ β†’ βŠ₯.
-#p #n #H0 @H0 -H0 //
+lemma pic_inv_d_dx (p) (k):
+      p◖𝗱k Ο΅ πˆ β†’ βŠ₯.
+#p #k #H0 @H0 -H0 //
 qed-.
index e7e1391da6313ed92d874bad2ec09bdce551870e..7f0a71a8c34b323005c19924048d6f90e7de4905 100644 (file)
@@ -36,7 +36,7 @@ lemma labels_zero (l):
 // qed.
 
 lemma labels_succ (l) (n):
-      lβ——(lβˆ—βˆ—n) = lβˆ—βˆ—(↑n).
+      (lβˆ—βˆ—n)β—–l = lβˆ—βˆ—(↑n).
 #l #n
 <labels_unfold <labels_unfold <niter_succ //
 qed.
index ff6a53c3932c4a01eac32c3e58993ab8fadb9174..5d29633620eb9b15364d24f5177a28b8667db624 100644 (file)
@@ -29,13 +29,15 @@ interpretation
 
 (* Basic constructions ******************************************************)
 
-lemma ppc_lcons (l) (q): lβ——q Ο΅ π.
-#l #q #H0 destruct
+lemma ppc_rcons (p) (l):
+      pβ—–l Ο΅ π.
+#p #l #H0 destruct
 qed.
 
-lemma ppc_rcons (l) (q): qβ—–l Ο΅ π.
-#l #q #H
-elim (eq_inv_list_empty_rcons ??? H)
+lemma ppc_lcons (p) (l):
+      lβ——p Ο΅ π.
+#p #l #H0
+elim (eq_inv_list_empty_rcons ??? H0)
 qed.
 
 (* Basic inversions ********************************************************)
@@ -45,16 +47,16 @@ lemma ppc_inv_empty:
 #H0 @H0 -H0 //
 qed-.
 
-lemma ppc_inv_lcons (p):
-      p Ο΅ π β†’ βˆƒβˆƒl,q. lβ——q = p.
+lemma ppc_inv_rcons (p):
+      p Ο΅ π β†’ βˆƒβˆƒq,l. qβ—–l = p.
 *
 [ #H0 elim (ppc_inv_empty β€¦ H0)
 | #l #q #_ /2 width=3 by ex1_2_intro/
 ]
 qed-.
 
-lemma ppc_inv_rcons (p):
-      p Ο΅ π β†’ βˆƒβˆƒq,l. qβ—–l = p.
+lemma ppc_inv_lcons (p):
+      p Ο΅ π β†’ βˆƒβˆƒq,l. lβ——q = p.
 #p @(list_ind_rcons β€¦ p) -p
 [ #H0 elim (ppc_inv_empty β€¦ H0)
 | #q #l #_ #_ /2 width=3 by ex1_2_intro/
index 0330665ad2e55ca16d2417900eef45f61b122aa7..a9d9dd18f362a187272cd5b7474fd2e261a2296a 100644 (file)
@@ -22,11 +22,11 @@ match p with
 [ list_empty     β‡’ πž
 | list_lcons l q β‡’
    match l with
-   [ label_d n β‡’ structure q
+   [ label_d k β‡’ structure q
    | label_m   β‡’ structure q
-   | label_L   β‡’ π—Ÿβ——structure q
-   | label_A   β‡’ π—”β——structure q
-   | label_S   β‡’ π—¦β——structure q
+   | label_L   β‡’ (structure q)β—–π—Ÿ
+   | label_A   β‡’ (structure q)◖𝗔
+   | label_S   β‡’ (structure q)◖𝗦
    ]
 ].
 
@@ -40,62 +40,62 @@ lemma structure_empty:
       πž = βŠ—πž.
 // qed.
 
-lemma structure_d_sn (p) (n):
-      βŠ—p = βŠ—(𝗱nβ——p).
+lemma structure_d_dx (p) (k):
+      βŠ—p = βŠ—(p◖𝗱k).
 // qed.
 
-lemma structure_m_sn (p):
-      βŠ—p = βŠ—(𝗺◗p).
+lemma structure_m_dx (p):
+      βŠ—p = βŠ—(p◖𝗺).
 // qed.
 
-lemma structure_L_sn (p):
-      (π—Ÿβ——βŠ—p) = βŠ—(π—Ÿβ——p).
+lemma structure_L_dx (p):
+      (βŠ—p)β—–π—Ÿ = βŠ—(pβ—–π—Ÿ).
 // qed.
 
-lemma structure_A_sn (p):
-      (π—”β——βŠ—p) = βŠ—(𝗔◗p).
+lemma structure_A_dx (p):
+      (βŠ—p)◖𝗔 = βŠ—(p◖𝗔).
 // qed.
 
-lemma structure_S_sn (p):
-      (π—¦β——βŠ—p) = βŠ—(𝗦◗p).
+lemma structure_S_dx (p):
+      (βŠ—p)◖𝗦 = βŠ—(p◖𝗦).
 // qed.
 
 (* Main constructions *******************************************************)
 
 theorem structure_idem (p):
         βŠ—p = βŠ—βŠ—p.
-#p elim p -p [| * [ #n ] #p #IH ] //
+#p elim p -p [| * [ #k ] #p #IH ] //
 qed.
 
-theorem structure_append (p1) (p2):
-        βŠ—p1β—βŠ—p2 = βŠ—(p1●p2).
-#p1 elim p1 -p1 [| * [ #n ] #p1 #IH ] #p2
+theorem structure_append (p) (q):
+        βŠ—pβ—βŠ—q = βŠ—(p●q).
+#p #q elim q -q [| * [ #k ] #q #IH ]
 [||*: <list_append_lcons_sn ] //
 qed.
 
-(* Constructions with list_rcons ********************************************)
+(* Constructions with path_lcons ********************************************)
 
-lemma structure_d_dx (p) (n):
-      βŠ—p = βŠ—(p◖𝗱n).
+lemma structure_d_sn (p) (k):
+      βŠ—p = βŠ—(𝗱kβ——p).
 #p #n <structure_append //
 qed.
 
-lemma structure_m_dx (p):
-      βŠ—p = βŠ—(p◖𝗺).
+lemma structure_m_sn (p):
+      βŠ—p = βŠ—(𝗺◗p).
 #p <structure_append //
 qed.
 
-lemma structure_L_dx (p):
-      (βŠ—p)β—–π—Ÿ = βŠ—(pβ—–π—Ÿ).
+lemma structure_L_sn (p):
+      (π—Ÿβ——βŠ—p) = βŠ—(π—Ÿβ——p).
 #p <structure_append //
 qed.
 
-lemma structure_A_dx (p):
-      (βŠ—p)◖𝗔 = βŠ—(p◖𝗔).
+lemma structure_A_sn (p):
+      (π—”β——βŠ—p) = βŠ—(𝗔◗p).
 #p <structure_append //
 qed.
 
-lemma structure_S_dx (p):
-      (βŠ—p)◖𝗦 = βŠ—(p◖𝗦).
+lemma structure_S_sn (p):
+      (π—¦β——βŠ—p) = βŠ—(𝗦◗p).
 #p <structure_append //
 qed.
index 4648217932fcd1d310c88dc807afa8f64f622b45..67b3e661f1c81ead52dec9428dab230ea5a8c830 100644 (file)
@@ -22,9 +22,9 @@ include "delayed_updating/syntax/path_depth.ma".
 lemma depth_structure (p):
       β™­p = β™­βŠ—p.
 #p elim p -p //
-* [ #n ] #p #IH //
-[ <structure_L_sn <depth_L_sn <depth_L_sn //
-| <structure_A_sn <depth_A_sn <depth_A_sn //
-| <structure_S_sn <depth_S_sn <depth_S_sn //
+* [ #k ] #p #IH //
+[ <structure_L_dx <depth_L_dx <depth_L_dx //
+| <structure_A_dx <depth_A_dx <depth_A_dx //
+| <structure_S_dx <depth_S_dx <depth_S_dx //
 ]
 qed.
index 5c0e5e6eb549a76a91567b1ee9a801976be46b02..99ed6a323f59a60e7cba2473b40d4e270ed2aca5 100644 (file)
@@ -21,9 +21,9 @@ include "delayed_updating/syntax/path_inner.ma".
 
 lemma structure_pic (p):
       βŠ—p Ο΅ πˆ.
-#p @(list_ind_rcons β€¦ p) -p
+#p elim p -p
 [ <structure_empty //
-| #p * [ #n ] #IH
+| * [ #k ] #p #IH
   [ <structure_d_dx //
   | <structure_m_dx //
   | <structure_L_dx //
index 4d428e5ba8ae48488fa3702ef2cf7055718a0cc6..6406d1dd7e50900f498b1832728315c5701e89e9 100644 (file)
@@ -30,12 +30,12 @@ interpretation
 
 (* Basic inversions *********************************************************)
 
-lemma preterm_in_root_append_inv_structure_empty_dx (t) (p) (r):
-      p●r Ο΅ β–΅t β†’ t Ο΅ π“ β†’  πž = βŠ—r β†’ πž = r.
-#t #p #r #Hpr #Ht #Hr
-lapply (Ht p ?? Hpr ?)
+lemma preterm_in_root_append_inv_structure_empty_dx (t) (p) (q):
+      p●q Ο΅ β–΅t β†’ t Ο΅ π“ β†’ πž = βŠ—q β†’ πž = q.
+#t #p #q #Hpq #Ht #Hq
+lapply (Ht p ?? Hpq ?)
 [ <structure_append //
 | /2 width=2 by prototerm_in_root_append_des_sn/
-| /2 width=3 by eq_inv_list_append_dx_sn_refl/
+| /2 width=3 by eq_inv_list_append_dx_dx_refl/
 ]
 qed-.
index f026c769e0cd3442db5b644f274f3252b37dfcf5..5bb66e16ab112f1ab94db7db70cba521bc150131 100644 (file)
@@ -41,11 +41,11 @@ interpretation
 
 interpretation
   "outer variable reference by depth (prototerm)"
-  'Hash n = (prototerm_node_0 (label_d n)).
+  'Hash k = (prototerm_node_0 (label_d k)).
 
 interpretation
   "inner variable reference by depth (prototerm)"
-  'Tau n t = (prototerm_node_1_2 (label_d n) label_m t).
+  'Tau k t = (prototerm_node_1_2 (label_d k) label_m t).
 
 interpretation
   "name-free functional abstraction (prototerm)"
@@ -57,18 +57,19 @@ interpretation
 
 (* Basic constructions *******************************************************)
 
-lemma in_comp_iref (t) (q) (n):
-      q Ο΅ t β†’ π—±n◗𝗺◗q Ο΅ π›•n.t.
+lemma in_comp_iref (t) (q) (k):
+      q Ο΅ t β†’ π—±k◗𝗺◗q Ο΅ π›•k.t.
 /2 width=3 by ex2_intro/ qed.
 
 (* Basic inversions *********************************************************)
 
-lemma in_comp_inv_iref (t) (p) (n):
-      p Ο΅ π›•n.t β†’
-      βˆƒβˆƒq. π—±n◗𝗺◗q = p & q Ο΅ t.
-#t #p #n * #q #Hq #Hp
+lemma in_comp_inv_iref (t) (p) (k):
+      p Ο΅ π›•k.t β†’
+      βˆƒβˆƒq. π—±k◗𝗺◗q = p & q Ο΅ t.
+#t #p #k * #q #Hq #Hp
 /2 width=3 by ex2_intro/
 qed-.
+
 (* COMMENT
 lemma prototerm_in_root_inv_lcons_oref:
       βˆ€p,l,n. lβ——p Ο΅ β–΅#n β†’
index 46e945ede9ed9b0e022b9573cbc96c3d677a7162..4a83b790efe57b98d423129c50c1aab43d28e71e 100644 (file)
@@ -19,7 +19,7 @@ include "ground/lib/subset_ext_equivalence.ma".
 
 (* Constructions with equivalence for prototerm *****************************)
 
-lemma iref_eq_repl (t1) (t2) (n):
-      t1 β‡” t2 β†’ π›•n.t1 β‡” π›•n.t2.
+lemma iref_eq_repl (t1) (t2) (k):
+      t1 β‡” t2 β†’ π›•k.t1 β‡” π›•k.t2.
 /2 width=1 by subset_equivalence_ext_f1_bi/
 qed.
index 309eb00246b0a93089a18aead73907caf3dab2c4..f7f921bcfb5ee6152efad51bfe57eefbff2ed0b0 100644 (file)
@@ -19,7 +19,7 @@ include "delayed_updating/syntax/prototerm_constructors.ma".
 
 (* Constructions with prototerm constructors ********************************)
 
-lemma ppc_iref (t) (n):
-      (𝛕n.t) Ο΅ π.
-#t #n #p * #q #Hq #H0 destruct //
+lemma ppc_iref (t) (k):
+      (𝛕k.t) Ο΅ π.
+#t #k #p * #q #Hq #H0 destruct //
 qed.