]> matita.cs.unibo.it Git - helm.git/commitdiff
update in delayed_updating
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 6 Nov 2022 18:21:23 +0000 (19:21 +0100)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 6 Nov 2022 18:21:23 +0000 (19:21 +0100)
+ core reduction parked
+ paths of one repeated label resumed

28 files changed:
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_lift.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_lift.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_depth_labels.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_height_labels.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_labels.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_structure_labels.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/power_2.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/head/unwind2_rmap_labels.etc [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/etc/height/path_height_labels.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_depth_labels.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_structure_labels.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/unwind2_rmap_labels.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_df_3.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_if_3.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_lift.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma [deleted file]
matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma [new file with mode: 0644]

diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_df_3.etc
new file mode 100644 (file)
index 0000000..1750f33
--- /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 โžก๐๐Ÿ[ break term 46 r ] break term 46 t2 )"
+  non associative with precedence 45
+  for @{ 'BlackRightArrowDF $t1 $r $t2 }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/black_rightarrow_if_3.etc
new file mode 100644 (file)
index 0000000..90fe54b
--- /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 โžก๐ข๐Ÿ[ break term 46 r ] break term 46 t2 )"
+  non associative with precedence 45
+  for @{ 'BlackRightArrowIF $t1 $r $t2 }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr.etc
new file mode 100644 (file)
index 0000000..8e26b62
--- /dev/null
@@ -0,0 +1,33 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/substitution/fsubst.ma".
+include "delayed_updating/syntax/prototerm_constructors.ma".
+include "delayed_updating/syntax/prototerm_eq.ma".
+include "delayed_updating/syntax/path_closed.ma".
+include "delayed_updating/notation/relations/black_rightarrow_df_3.ma".
+include "ground/xoa/ex_4_3.ma".
+
+(* DELAYED FOCUSED REDUCTION ************************************************)
+
+definition dfr (r): relation2 prototerm prototerm โ‰
+           ฮปt1,t2.
+           โˆƒโˆƒp,q,n. pโ—๐—”โ——๐—Ÿโ——q = r &
+           q ฯต ๐‚โจโ’ป,nโฉ & rโ—–๐—ฑโ†‘n ฯต t1 &
+           t1[โ‹”rโ†๐›•โ†‘n.(t1โ‹”(pโ—–๐—ฆ))] โ‡” t2
+.
+
+interpretation
+  "focused reduction with delayed updating (prototerm)"
+  'BlackRightArrowDF t1 r t2 = (dfr r t1 t2).
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_ifr.etc
new file mode 100644 (file)
index 0000000..1cb62ed
--- /dev/null
@@ -0,0 +1,68 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/reduction/dfr.ma".
+include "delayed_updating/reduction/ifr.ma".
+
+include "delayed_updating/unwind/unwind2_constructors.ma".
+include "delayed_updating/unwind/unwind2_preterm_fsubst.ma".
+include "delayed_updating/unwind/unwind2_preterm_eq.ma".
+include "delayed_updating/unwind/unwind2_prototerm_lift.ma".
+include "delayed_updating/unwind/unwind2_rmap_closed.ma".
+
+include "delayed_updating/substitution/fsubst_eq.ma".
+include "delayed_updating/substitution/lift_prototerm_eq.ma".
+
+include "delayed_updating/syntax/prototerm_proper_constructors.ma".
+include "delayed_updating/syntax/path_closed_structure.ma".
+include "delayed_updating/syntax/path_structure_depth.ma".
+
+(* DELAYED FOCUSED REDUCTION ************************************************)
+
+(* Main destructions with ifr ***********************************************)
+
+theorem dfr_des_ifr (f) (t1) (t2) (r): t1 ฯต ๐“ โ†’
+        t1 โžก๐๐Ÿ[r] t2 โ†’ โ–ผ[f]t1 โžก๐ข๐Ÿ[โŠ—r] โ–ผ[f]t2.
+#f #t1 #t2 #r #H0t1
+* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
+@(ex4_3_intro โ€ฆ (โŠ—p) (โŠ—q) (โ™ญq))
+[ -H0t1 -Hn -Ht1 -Ht2 //
+| -H0t1 -Ht1 -Ht2
+  /2 width=2 by path_closed_structure_depth/
+| lapply (in_comp_unwind2_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -H0t1
+  <unwind2_path_d_dx <tr_pap_succ_nap <list_append_rcons_sn
+  <nap_unwind2_rmap_append_closed_Lq_dx_depth //
+| lapply (unwind2_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2
+  @(subset_eq_trans โ€ฆ Ht2) -t2
+  @(subset_eq_trans โ€ฆ (unwind2_term_fsubst_ppc โ€ฆ))
+  [ @fsubst_eq_repl [ // | // ]
+    @(subset_eq_trans โ€ฆ (unwind2_term_irefโ€ฆ))
+    @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
+    [ @unwind2_term_grafted_S /2 width=2 by ex_intro/ | skip ] -Ht1
+    @(subset_eq_trans โ€ฆ (lift_unwind2_term_after โ€ฆ))
+    @unwind2_term_eq_repl_sn
+(* Note: crux of the proof begins *)
+    <list_append_rcons_sn
+    @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
+    @tr_compose_eq_repl
+    [ <nap_unwind2_rmap_append_closed_Lq_dx_depth //
+    | /2 width=2 by tls_succ_unwind2_rmap_append_closed_Lq_dx/
+    ]
+(* Note: crux of the proof ends *)
+  | //
+  | /2 width=2 by ex_intro/
+  | //
+  ]
+]
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_lift.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/dfr_lift.etc
new file mode 100644 (file)
index 0000000..9478f78
--- /dev/null
@@ -0,0 +1,49 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/reduction/dfr.ma".
+
+include "delayed_updating/substitution/fsubst_lift.ma".
+include "delayed_updating/substitution/fsubst_eq.ma".
+include "delayed_updating/substitution/lift_constructors.ma".
+include "delayed_updating/substitution/lift_path_closed.ma".
+include "delayed_updating/substitution/lift_rmap_closed.ma".
+
+(* DELAYED FOCUSED REDUCTION ************************************************)
+
+(* Constructions with lift **************************************************)
+
+theorem dfr_lift_bi (f) (t1) (t2) (r):
+        t1 โžก๐๐Ÿ[r] t2 โ†’ ๐Ÿ ก[f]t1 โžก๐๐Ÿ[๐Ÿ ก[f]r] ๐Ÿ ก[f]t2.
+#f #t1 #t2 #r
+* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
+@(ex4_3_intro โ€ฆ (๐Ÿ ก[f]p) (๐Ÿ ก[๐Ÿ ข[f](pโ—–๐—”โ—–๐—Ÿ)]q) (๐Ÿ ข[f](pโ—๐—”โ——๐—Ÿโ——q)๏ผ ยงโจnโฉ))
+[ -Hn -Ht1 -Ht2 //
+| -Ht1 -Ht2
+  /2 width=1 by lift_path_rmap_closed_L/
+| lapply (in_comp_lift_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -Hn
+  <lift_path_d_dx #Ht1 //
+| lapply (lift_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2 -Ht1
+  @(subset_eq_trans โ€ฆ Ht2) -t2
+  @(subset_eq_trans โ€ฆ (lift_term_fsubst โ€ฆ))
+  @fsubst_eq_repl [ // | // ]
+  @(subset_eq_trans โ€ฆ (lift_term_iref_nap โ€ฆ))
+  @iref_eq_repl
+  @(subset_eq_canc_sn โ€ฆ (lift_term_grafted_S โ€ฆ))
+  @lift_term_eq_repl_sn
+(* Note: crux of the proof begins *)
+  /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/
+(* Note: crux of the proof ends *)
+]
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr.etc
new file mode 100644 (file)
index 0000000..2a6553d
--- /dev/null
@@ -0,0 +1,34 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/substitution/fsubst.ma".
+include "delayed_updating/substitution/lift_prototerm.ma".
+include "delayed_updating/syntax/prototerm_eq.ma".
+include "delayed_updating/syntax/path_closed.ma".
+include "delayed_updating/notation/relations/black_rightarrow_if_3.ma".
+include "ground/relocation/tr_uni.ma".
+include "ground/xoa/ex_4_3.ma".
+
+(* IMMEDIATE FOCUSED REDUCTION ************************************************)
+
+definition ifr (r): relation2 prototerm prototerm โ‰
+           ฮปt1,t2.
+           โˆƒโˆƒp,q,n. pโ—๐—”โ——๐—Ÿโ——q = r &
+           q ฯต ๐‚โจโ’ป,nโฉ & rโ—–๐—ฑโ†‘n ฯต t1 &
+           t1[โ‹”rโ†๐Ÿ ก[๐ฎโจโ†‘nโฉ](t1โ‹”(pโ—–๐—ฆ))] โ‡” t2
+.
+
+interpretation
+  "focused reduction with immediate updating (prototerm)"
+  'BlackRightArrowIF t1 r t2 = (ifr r t1 t2).
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_lift.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_lift.etc
new file mode 100644 (file)
index 0000000..cd597c2
--- /dev/null
@@ -0,0 +1,55 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/reduction/ifr.ma".
+
+include "delayed_updating/substitution/fsubst_lift.ma".
+include "delayed_updating/substitution/fsubst_eq.ma".
+include "delayed_updating/substitution/lift_prototerm_after.ma".
+include "delayed_updating/substitution/lift_path_closed.ma".
+include "delayed_updating/substitution/lift_rmap_closed.ma".
+
+include "ground/relocation/tr_uni_compose.ma".
+include "ground/relocation/tr_compose_eq.ma".
+
+(* IMMEDIATE FOCUSED REDUCTION **********************************************)
+
+(* Constructions with lift **************************************************)
+
+theorem ifr_lift_bi (f) (t1) (t2) (r):
+        t1 โžก๐ข๐Ÿ[r] t2 โ†’ ๐Ÿ ก[f]t1 โžก๐ข๐Ÿ[๐Ÿ ก[f]r] ๐Ÿ ก[f]t2.
+#f #t1 #t2 #r
+* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
+@(ex4_3_intro โ€ฆ (๐Ÿ ก[f]p) (๐Ÿ ก[๐Ÿ ข[f](pโ—–๐—”โ—–๐—Ÿ)]q) (๐Ÿ ข[f](pโ—๐—”โ——๐—Ÿโ——q)๏ผ ยงโจnโฉ))
+[ -Hn -Ht1 -Ht2 //
+| -Ht1 -Ht2
+  /2 width=1 by lift_path_rmap_closed_L/
+| lapply (in_comp_lift_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -Hn
+  <lift_path_d_dx #Ht1 //
+| lapply (lift_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2 -Ht1
+  @(subset_eq_trans โ€ฆ Ht2) -t2
+  @(subset_eq_trans โ€ฆ (lift_term_fsubst โ€ฆ))
+  @fsubst_eq_repl [ // | <lift_path_append // ]
+  @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
+  [ @lift_term_grafted_S | skip ]
+  @(subset_eq_trans โ€ฆ (lift_term_after โ€ฆ))
+  @(subset_eq_canc_dx โ€ฆ (lift_term_after โ€ฆ))
+  @lift_term_eq_repl_sn
+(* Note: crux of the proof begins *)
+  @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
+  @tr_compose_eq_repl // >nsucc_unfold
+  /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/
+(* Note: crux of the proof ends *)
+]
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/core_reduction/ifr_unwind.etc
new file mode 100644 (file)
index 0000000..d931a1a
--- /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 "delayed_updating/reduction/ifr.ma".
+
+include "delayed_updating/unwind/unwind2_preterm_fsubst.ma".
+include "delayed_updating/unwind/unwind2_preterm_eq.ma".
+include "delayed_updating/unwind/unwind2_prototerm_lift.ma".
+include "delayed_updating/unwind/unwind2_rmap_closed.ma".
+
+include "delayed_updating/substitution/fsubst_eq.ma".
+include "delayed_updating/substitution/lift_prototerm_eq.ma".
+
+include "delayed_updating/syntax/path_closed_structure.ma".
+include "delayed_updating/syntax/path_structure_depth.ma".
+
+(* IMMEDIATE FOCUSED REDUCTION **********************************************)
+
+(* Constructions with unwind2 ***********************************************)
+
+lemma ifr_unwind_bi (f) (t1) (t2) (r):
+      t1 ฯต ๐“ โ†’ r ฯต ๐ˆ โ†’
+      t1 โžก๐ข๐Ÿ[r] t2 โ†’ โ–ผ[f]t1 โžก๐ข๐Ÿ[โŠ—r] โ–ผ[f]t2.
+#f #t1 #t2 #r #H1t1 #H2r
+* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
+@(ex4_3_intro โ€ฆ (โŠ—p) (โŠ—q) (โ™ญq))
+[ -H1t1 -H2r -Hn -Ht1 -Ht2 //
+| -H1t1 -H2r -Ht1 -Ht2
+  /2 width=2 by path_closed_structure_depth/
+| lapply (in_comp_unwind2_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -H1t1 -H2r
+  <unwind2_path_d_dx <tr_pap_succ_nap <list_append_rcons_sn
+  <nap_unwind2_rmap_append_closed_Lq_dx_depth //
+| lapply (unwind2_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2
+  @(subset_eq_trans โ€ฆ Ht2) -t2
+  @(subset_eq_trans โ€ฆ (unwind2_term_fsubst_pic โ€ฆ))
+  [ @fsubst_eq_repl [ // | // ]
+    @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
+    [ @unwind2_term_grafted_S /2 width=2 by ex_intro/ | skip ] -Ht1
+    @(subset_eq_trans โ€ฆ (lift_unwind2_term_after โ€ฆ))
+    @(subset_eq_canc_dx โ€ฆ (unwind2_lift_term_after โ€ฆ))
+    @unwind2_term_eq_repl_sn
+(* Note: crux of the proof begins *)
+    <list_append_rcons_sn
+    @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
+    @tr_compose_eq_repl
+    [ <nap_unwind2_rmap_append_closed_Lq_dx_depth //
+    | /2 width=2 by tls_succ_unwind2_rmap_append_closed_Lq_dx/
+    ]
+(* Note: crux of the proof ends *)
+  | //
+  | /2 width=2 by ex_intro/
+  | //
+  ]
+]
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_depth_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_depth_labels.etc
deleted file mode 100644 (file)
index 791a09a..0000000
+++ /dev/null
@@ -1,26 +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 "delayed_updating/syntax/path_depth.ma".
-include "delayed_updating/syntax/path_labels.ma".
-
-(* DEPTH FOR PATH ***********************************************************)
-
-(* Constructions with labels ************************************************)
-
-lemma depth_labels_L (n):
-      n = โ™ญ(๐—Ÿโˆ—โˆ—n).
-#n @(nat_ind_succ โ€ฆ n) -n //
-#n #IH <labels_succ <depth_L_dx //
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_height_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_height_labels.etc
deleted file mode 100644 (file)
index fb55c36..0000000
+++ /dev/null
@@ -1,26 +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 "delayed_updating/syntax/path_height.ma".
-include "delayed_updating/syntax/path_labels.ma".
-
-(* HEIGHT FOR PATH **********************************************************)
-
-(* Constructions with labels ************************************************)
-
-lemma height_labels_L (n):
-      (๐ŸŽ) = โ™ฏ(๐—Ÿโˆ—โˆ—n).
-#n @(nat_ind_succ โ€ฆ n) -n //
-#n #IH <labels_succ <height_L_dx //
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_labels.etc
deleted file mode 100644 (file)
index 7f0a71a..0000000
+++ /dev/null
@@ -1,50 +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 "delayed_updating/syntax/path.ma".
-include "delayed_updating/notation/functions/power_2.ma".
-include "ground/arith/nat_succ_iter.ma".
-
-(* *)
-
-definition labels (l) (n:nat): path โ‰
-           ((list_lcons ? l)^n) (๐ž).
-
-interpretation
-  "labels (path)"
-  'Power l n = (labels l n).
-
-(* Basic constructions ******************************************************)
-
-lemma labels_unfold (l) (n):
-      ((list_lcons ? l)^n) (๐ž) = lโˆ—โˆ—n.
-// qed.
-
-lemma labels_zero (l):
-      (๐ž) = lโˆ—โˆ—๐ŸŽ.
-// qed.
-
-lemma labels_succ (l) (n):
-      (lโˆ—โˆ—n)โ—–l = lโˆ—โˆ—(โ†‘n).
-#l #n
-<labels_unfold <labels_unfold <niter_succ //
-qed.
-
-(* Basic inversions *********************************************************)
-
-lemma eq_inv_empty_labels (l) (n):
-      (๐ž) = lโˆ—โˆ—n โ†’ ๐ŸŽ = n.
-#l #n @(nat_ind_succ โ€ฆ n) -n //
-#n #_ <labels_succ #H0 destruct
-qed-.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_structure_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/path_structure_labels.etc
deleted file mode 100644 (file)
index 0dcc367..0000000
+++ /dev/null
@@ -1,25 +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 "delayed_updating/syntax/path_structure.ma".
-include "delayed_updating/syntax/path_labels.ma".
-
-(* STRUCTURE FOR PATH *******************************************************)
-
-(* Constructions with labels ************************************************)
-
-lemma structure_labels_L (n):
-      (๐—Ÿโˆ—โˆ—n) = โŠ—(๐—Ÿโˆ—โˆ—n).
-#n @(nat_ind_succ โ€ฆ n) -n //
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/power_2.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/power_2.etc
deleted file mode 100644 (file)
index bed0c7f..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( a โˆ—โˆ— break b )"
-  left associative with precedence 65
-  for @{ 'Power $a $b }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/unwind2_rmap_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/head/unwind2_rmap_labels.etc
deleted file mode 100644 (file)
index d139018..0000000
+++ /dev/null
@@ -1,28 +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 "delayed_updating/unwind/unwind2_rmap.ma".
-include "delayed_updating/syntax/path_labels.ma".
-include "ground/relocation/tr_pushs.ma".
-
-(* TAILED UNWIND FOR RELOCATION MAP *****************************************)
-
-(* Constructions with labels ************************************************)
-
-lemma unwind2_rmap_labels_L (f) (n):
-      (โซฏ*[n]f) = โ–ถ[f](๐—Ÿโˆ—โˆ—n).
-#f #n @(nat_ind_succ โ€ฆ n) -n //
-#n #IH
-<labels_succ <unwind2_rmap_L_dx //
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/height/path_height_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/height/path_height_labels.etc
new file mode 100644 (file)
index 0000000..fb55c36
--- /dev/null
@@ -0,0 +1,26 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/syntax/path_height.ma".
+include "delayed_updating/syntax/path_labels.ma".
+
+(* HEIGHT FOR PATH **********************************************************)
+
+(* Constructions with labels ************************************************)
+
+lemma height_labels_L (n):
+      (๐ŸŽ) = โ™ฏ(๐—Ÿโˆ—โˆ—n).
+#n @(nat_ind_succ โ€ฆ n) -n //
+#n #IH <labels_succ <height_L_dx //
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_depth_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_depth_labels.etc
new file mode 100644 (file)
index 0000000..791a09a
--- /dev/null
@@ -0,0 +1,26 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/syntax/path_depth.ma".
+include "delayed_updating/syntax/path_labels.ma".
+
+(* DEPTH FOR PATH ***********************************************************)
+
+(* Constructions with labels ************************************************)
+
+lemma depth_labels_L (n):
+      n = โ™ญ(๐—Ÿโˆ—โˆ—n).
+#n @(nat_ind_succ โ€ฆ n) -n //
+#n #IH <labels_succ <depth_L_dx //
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_structure_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/path_structure_labels.etc
new file mode 100644 (file)
index 0000000..0dcc367
--- /dev/null
@@ -0,0 +1,25 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/syntax/path_structure.ma".
+include "delayed_updating/syntax/path_labels.ma".
+
+(* STRUCTURE FOR PATH *******************************************************)
+
+(* Constructions with labels ************************************************)
+
+lemma structure_labels_L (n):
+      (๐—Ÿโˆ—โˆ—n) = โŠ—(๐—Ÿโˆ—โˆ—n).
+#n @(nat_ind_succ โ€ฆ n) -n //
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/unwind2_rmap_labels.etc b/matita/matita/contribs/lambdadelta/delayed_updating/etc/labels/unwind2_rmap_labels.etc
new file mode 100644 (file)
index 0000000..d139018
--- /dev/null
@@ -0,0 +1,28 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/unwind/unwind2_rmap.ma".
+include "delayed_updating/syntax/path_labels.ma".
+include "ground/relocation/tr_pushs.ma".
+
+(* TAILED UNWIND FOR RELOCATION MAP *****************************************)
+
+(* Constructions with labels ************************************************)
+
+lemma unwind2_rmap_labels_L (f) (n):
+      (โซฏ*[n]f) = โ–ถ[f](๐—Ÿโˆ—โˆ—n).
+#f #n @(nat_ind_succ โ€ฆ n) -n //
+#n #IH
+<labels_succ <unwind2_rmap_L_dx //
+qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/functions/power_2.ma
new file mode 100644 (file)
index 0000000..bed0c7f
--- /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( a โˆ—โˆ— break b )"
+  left associative with precedence 65
+  for @{ 'Power $a $b }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_df_3.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_df_3.ma
deleted file mode 100644 (file)
index 1750f33..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( t1 โžก๐๐Ÿ[ break term 46 r ] break term 46 t2 )"
-  non associative with precedence 45
-  for @{ 'BlackRightArrowDF $t1 $r $t2 }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_if_3.ma b/matita/matita/contribs/lambdadelta/delayed_updating/notation/relations/black_rightarrow_if_3.ma
deleted file mode 100644 (file)
index 90fe54b..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( t1 โžก๐ข๐Ÿ[ break term 46 r ] break term 46 t2 )"
-  non associative with precedence 45
-  for @{ 'BlackRightArrowIF $t1 $r $t2 }.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr.ma
deleted file mode 100644 (file)
index 8e26b62..0000000
+++ /dev/null
@@ -1,33 +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 "delayed_updating/substitution/fsubst.ma".
-include "delayed_updating/syntax/prototerm_constructors.ma".
-include "delayed_updating/syntax/prototerm_eq.ma".
-include "delayed_updating/syntax/path_closed.ma".
-include "delayed_updating/notation/relations/black_rightarrow_df_3.ma".
-include "ground/xoa/ex_4_3.ma".
-
-(* DELAYED FOCUSED REDUCTION ************************************************)
-
-definition dfr (r): relation2 prototerm prototerm โ‰
-           ฮปt1,t2.
-           โˆƒโˆƒp,q,n. pโ—๐—”โ——๐—Ÿโ——q = r &
-           q ฯต ๐‚โจโ’ป,nโฉ & rโ—–๐—ฑโ†‘n ฯต t1 &
-           t1[โ‹”rโ†๐›•โ†‘n.(t1โ‹”(pโ—–๐—ฆ))] โ‡” t2
-.
-
-interpretation
-  "focused reduction with delayed updating (prototerm)"
-  'BlackRightArrowDF t1 r t2 = (dfr r t1 t2).
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma
deleted file mode 100644 (file)
index 1cb62ed..0000000
+++ /dev/null
@@ -1,68 +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 "delayed_updating/reduction/dfr.ma".
-include "delayed_updating/reduction/ifr.ma".
-
-include "delayed_updating/unwind/unwind2_constructors.ma".
-include "delayed_updating/unwind/unwind2_preterm_fsubst.ma".
-include "delayed_updating/unwind/unwind2_preterm_eq.ma".
-include "delayed_updating/unwind/unwind2_prototerm_lift.ma".
-include "delayed_updating/unwind/unwind2_rmap_closed.ma".
-
-include "delayed_updating/substitution/fsubst_eq.ma".
-include "delayed_updating/substitution/lift_prototerm_eq.ma".
-
-include "delayed_updating/syntax/prototerm_proper_constructors.ma".
-include "delayed_updating/syntax/path_closed_structure.ma".
-include "delayed_updating/syntax/path_structure_depth.ma".
-
-(* DELAYED FOCUSED REDUCTION ************************************************)
-
-(* Main destructions with ifr ***********************************************)
-
-theorem dfr_des_ifr (f) (t1) (t2) (r): t1 ฯต ๐“ โ†’
-        t1 โžก๐๐Ÿ[r] t2 โ†’ โ–ผ[f]t1 โžก๐ข๐Ÿ[โŠ—r] โ–ผ[f]t2.
-#f #t1 #t2 #r #H0t1
-* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
-@(ex4_3_intro โ€ฆ (โŠ—p) (โŠ—q) (โ™ญq))
-[ -H0t1 -Hn -Ht1 -Ht2 //
-| -H0t1 -Ht1 -Ht2
-  /2 width=2 by path_closed_structure_depth/
-| lapply (in_comp_unwind2_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -H0t1
-  <unwind2_path_d_dx <tr_pap_succ_nap <list_append_rcons_sn
-  <nap_unwind2_rmap_append_closed_Lq_dx_depth //
-| lapply (unwind2_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2
-  @(subset_eq_trans โ€ฆ Ht2) -t2
-  @(subset_eq_trans โ€ฆ (unwind2_term_fsubst_ppc โ€ฆ))
-  [ @fsubst_eq_repl [ // | // ]
-    @(subset_eq_trans โ€ฆ (unwind2_term_irefโ€ฆ))
-    @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
-    [ @unwind2_term_grafted_S /2 width=2 by ex_intro/ | skip ] -Ht1
-    @(subset_eq_trans โ€ฆ (lift_unwind2_term_after โ€ฆ))
-    @unwind2_term_eq_repl_sn
-(* Note: crux of the proof begins *)
-    <list_append_rcons_sn
-    @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
-    @tr_compose_eq_repl
-    [ <nap_unwind2_rmap_append_closed_Lq_dx_depth //
-    | /2 width=2 by tls_succ_unwind2_rmap_append_closed_Lq_dx/
-    ]
-(* Note: crux of the proof ends *)
-  | //
-  | /2 width=2 by ex_intro/
-  | //
-  ]
-]
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_lift.ma
deleted file mode 100644 (file)
index 9478f78..0000000
+++ /dev/null
@@ -1,49 +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 "delayed_updating/reduction/dfr.ma".
-
-include "delayed_updating/substitution/fsubst_lift.ma".
-include "delayed_updating/substitution/fsubst_eq.ma".
-include "delayed_updating/substitution/lift_constructors.ma".
-include "delayed_updating/substitution/lift_path_closed.ma".
-include "delayed_updating/substitution/lift_rmap_closed.ma".
-
-(* DELAYED FOCUSED REDUCTION ************************************************)
-
-(* Constructions with lift **************************************************)
-
-theorem dfr_lift_bi (f) (t1) (t2) (r):
-        t1 โžก๐๐Ÿ[r] t2 โ†’ ๐Ÿ ก[f]t1 โžก๐๐Ÿ[๐Ÿ ก[f]r] ๐Ÿ ก[f]t2.
-#f #t1 #t2 #r
-* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
-@(ex4_3_intro โ€ฆ (๐Ÿ ก[f]p) (๐Ÿ ก[๐Ÿ ข[f](pโ—–๐—”โ—–๐—Ÿ)]q) (๐Ÿ ข[f](pโ—๐—”โ——๐—Ÿโ——q)๏ผ ยงโจnโฉ))
-[ -Hn -Ht1 -Ht2 //
-| -Ht1 -Ht2
-  /2 width=1 by lift_path_rmap_closed_L/
-| lapply (in_comp_lift_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -Hn
-  <lift_path_d_dx #Ht1 //
-| lapply (lift_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2 -Ht1
-  @(subset_eq_trans โ€ฆ Ht2) -t2
-  @(subset_eq_trans โ€ฆ (lift_term_fsubst โ€ฆ))
-  @fsubst_eq_repl [ // | // ]
-  @(subset_eq_trans โ€ฆ (lift_term_iref_nap โ€ฆ))
-  @iref_eq_repl
-  @(subset_eq_canc_sn โ€ฆ (lift_term_grafted_S โ€ฆ))
-  @lift_term_eq_repl_sn
-(* Note: crux of the proof begins *)
-  /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/
-(* Note: crux of the proof ends *)
-]
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr.ma
deleted file mode 100644 (file)
index 2a6553d..0000000
+++ /dev/null
@@ -1,34 +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 "delayed_updating/substitution/fsubst.ma".
-include "delayed_updating/substitution/lift_prototerm.ma".
-include "delayed_updating/syntax/prototerm_eq.ma".
-include "delayed_updating/syntax/path_closed.ma".
-include "delayed_updating/notation/relations/black_rightarrow_if_3.ma".
-include "ground/relocation/tr_uni.ma".
-include "ground/xoa/ex_4_3.ma".
-
-(* IMMEDIATE FOCUSED REDUCTION ************************************************)
-
-definition ifr (r): relation2 prototerm prototerm โ‰
-           ฮปt1,t2.
-           โˆƒโˆƒp,q,n. pโ—๐—”โ——๐—Ÿโ——q = r &
-           q ฯต ๐‚โจโ’ป,nโฉ & rโ—–๐—ฑโ†‘n ฯต t1 &
-           t1[โ‹”rโ†๐Ÿ ก[๐ฎโจโ†‘nโฉ](t1โ‹”(pโ—–๐—ฆ))] โ‡” t2
-.
-
-interpretation
-  "focused reduction with immediate updating (prototerm)"
-  'BlackRightArrowIF t1 r t2 = (ifr r t1 t2).
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_lift.ma
deleted file mode 100644 (file)
index cd597c2..0000000
+++ /dev/null
@@ -1,55 +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 "delayed_updating/reduction/ifr.ma".
-
-include "delayed_updating/substitution/fsubst_lift.ma".
-include "delayed_updating/substitution/fsubst_eq.ma".
-include "delayed_updating/substitution/lift_prototerm_after.ma".
-include "delayed_updating/substitution/lift_path_closed.ma".
-include "delayed_updating/substitution/lift_rmap_closed.ma".
-
-include "ground/relocation/tr_uni_compose.ma".
-include "ground/relocation/tr_compose_eq.ma".
-
-(* IMMEDIATE FOCUSED REDUCTION **********************************************)
-
-(* Constructions with lift **************************************************)
-
-theorem ifr_lift_bi (f) (t1) (t2) (r):
-        t1 โžก๐ข๐Ÿ[r] t2 โ†’ ๐Ÿ ก[f]t1 โžก๐ข๐Ÿ[๐Ÿ ก[f]r] ๐Ÿ ก[f]t2.
-#f #t1 #t2 #r
-* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
-@(ex4_3_intro โ€ฆ (๐Ÿ ก[f]p) (๐Ÿ ก[๐Ÿ ข[f](pโ—–๐—”โ—–๐—Ÿ)]q) (๐Ÿ ข[f](pโ—๐—”โ——๐—Ÿโ——q)๏ผ ยงโจnโฉ))
-[ -Hn -Ht1 -Ht2 //
-| -Ht1 -Ht2
-  /2 width=1 by lift_path_rmap_closed_L/
-| lapply (in_comp_lift_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -Hn
-  <lift_path_d_dx #Ht1 //
-| lapply (lift_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2 -Ht1
-  @(subset_eq_trans โ€ฆ Ht2) -t2
-  @(subset_eq_trans โ€ฆ (lift_term_fsubst โ€ฆ))
-  @fsubst_eq_repl [ // | <lift_path_append // ]
-  @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
-  [ @lift_term_grafted_S | skip ]
-  @(subset_eq_trans โ€ฆ (lift_term_after โ€ฆ))
-  @(subset_eq_canc_dx โ€ฆ (lift_term_after โ€ฆ))
-  @lift_term_eq_repl_sn
-(* Note: crux of the proof begins *)
-  @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
-  @tr_compose_eq_repl // >nsucc_unfold
-  /2 width=2 by tls_succ_lift_rmap_append_closed_Lq_dx/
-(* Note: crux of the proof ends *)
-]
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/ifr_unwind.ma
deleted file mode 100644 (file)
index d931a1a..0000000
+++ /dev/null
@@ -1,66 +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 "delayed_updating/reduction/ifr.ma".
-
-include "delayed_updating/unwind/unwind2_preterm_fsubst.ma".
-include "delayed_updating/unwind/unwind2_preterm_eq.ma".
-include "delayed_updating/unwind/unwind2_prototerm_lift.ma".
-include "delayed_updating/unwind/unwind2_rmap_closed.ma".
-
-include "delayed_updating/substitution/fsubst_eq.ma".
-include "delayed_updating/substitution/lift_prototerm_eq.ma".
-
-include "delayed_updating/syntax/path_closed_structure.ma".
-include "delayed_updating/syntax/path_structure_depth.ma".
-
-(* IMMEDIATE FOCUSED REDUCTION **********************************************)
-
-(* Constructions with unwind2 ***********************************************)
-
-lemma ifr_unwind_bi (f) (t1) (t2) (r):
-      t1 ฯต ๐“ โ†’ r ฯต ๐ˆ โ†’
-      t1 โžก๐ข๐Ÿ[r] t2 โ†’ โ–ผ[f]t1 โžก๐ข๐Ÿ[โŠ—r] โ–ผ[f]t2.
-#f #t1 #t2 #r #H1t1 #H2r
-* #p #q #n #Hr #Hn #Ht1 #Ht2 destruct
-@(ex4_3_intro โ€ฆ (โŠ—p) (โŠ—q) (โ™ญq))
-[ -H1t1 -H2r -Hn -Ht1 -Ht2 //
-| -H1t1 -H2r -Ht1 -Ht2
-  /2 width=2 by path_closed_structure_depth/
-| lapply (in_comp_unwind2_path_term f โ€ฆ Ht1) -Ht2 -Ht1 -H1t1 -H2r
-  <unwind2_path_d_dx <tr_pap_succ_nap <list_append_rcons_sn
-  <nap_unwind2_rmap_append_closed_Lq_dx_depth //
-| lapply (unwind2_term_eq_repl_dx f โ€ฆ Ht2) -Ht2 #Ht2
-  @(subset_eq_trans โ€ฆ Ht2) -t2
-  @(subset_eq_trans โ€ฆ (unwind2_term_fsubst_pic โ€ฆ))
-  [ @fsubst_eq_repl [ // | // ]
-    @(subset_eq_canc_sn โ€ฆ (lift_term_eq_repl_dx โ€ฆ))
-    [ @unwind2_term_grafted_S /2 width=2 by ex_intro/ | skip ] -Ht1
-    @(subset_eq_trans โ€ฆ (lift_unwind2_term_after โ€ฆ))
-    @(subset_eq_canc_dx โ€ฆ (unwind2_lift_term_after โ€ฆ))
-    @unwind2_term_eq_repl_sn
-(* Note: crux of the proof begins *)
-    <list_append_rcons_sn
-    @(stream_eq_trans โ€ฆ (tr_compose_uni_dx_pap โ€ฆ)) <tr_pap_succ_nap
-    @tr_compose_eq_repl
-    [ <nap_unwind2_rmap_append_closed_Lq_dx_depth //
-    | /2 width=2 by tls_succ_unwind2_rmap_append_closed_Lq_dx/
-    ]
-(* Note: crux of the proof ends *)
-  | //
-  | /2 width=2 by ex_intro/
-  | //
-  ]
-]
-qed.
diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma b/matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_labels.ma
new file mode 100644 (file)
index 0000000..7f0a71a
--- /dev/null
@@ -0,0 +1,50 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "delayed_updating/syntax/path.ma".
+include "delayed_updating/notation/functions/power_2.ma".
+include "ground/arith/nat_succ_iter.ma".
+
+(* *)
+
+definition labels (l) (n:nat): path โ‰
+           ((list_lcons ? l)^n) (๐ž).
+
+interpretation
+  "labels (path)"
+  'Power l n = (labels l n).
+
+(* Basic constructions ******************************************************)
+
+lemma labels_unfold (l) (n):
+      ((list_lcons ? l)^n) (๐ž) = lโˆ—โˆ—n.
+// qed.
+
+lemma labels_zero (l):
+      (๐ž) = lโˆ—โˆ—๐ŸŽ.
+// qed.
+
+lemma labels_succ (l) (n):
+      (lโˆ—โˆ—n)โ—–l = lโˆ—โˆ—(โ†‘n).
+#l #n
+<labels_unfold <labels_unfold <niter_succ //
+qed.
+
+(* Basic inversions *********************************************************)
+
+lemma eq_inv_empty_labels (l) (n):
+      (๐ž) = lโˆ—โˆ—n โ†’ ๐ŸŽ = n.
+#l #n @(nat_ind_succ โ€ฆ n) -n //
+#n #_ <labels_succ #H0 destruct
+qed-.