]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/syntax/prototerm_constructors.ma
update in delayed_updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / syntax / prototerm_constructors.ma
index 35a79b0399624d79444c8ba3243003e8b1eb5cb6..f2526c2f6c2880cac3501d5426e53edf0952ea4e 100644 (file)
@@ -15,7 +15,7 @@
 include "delayed_updating/syntax/prototerm.ma".
 include "delayed_updating/notation/functions/m_hook_1.ma".
 include "delayed_updating/notation/functions/hash_1.ma".
-include "delayed_updating/notation/functions/phi_2.ma".
+include "delayed_updating/notation/functions/tau_2.ma".
 include "delayed_updating/notation/functions/lamda_1.ma".
 include "delayed_updating/notation/functions/at_2.ma".
 
@@ -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)"
-  'Phi 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,58 +57,69 @@ interpretation
 
 (* Basic constructions *******************************************************)
 
-lemma in_comp_iref (t) (q) (n):
-      q Ļµ t ā†’ š—±nā——š—ŗā——q Ļµ š›—n.t.
+lemma in_comp_oref_hd (k):
+      (š—±kā——šž) Ļµ ā§£k.
+// qed.
+
+lemma in_comp_iref_hd (t) (q) (k):
+      q Ļµ t ā†’ š—±kā——š—ŗā——q Ļµ š›•k.t.
 /2 width=3 by ex2_intro/ qed.
 
-(* Basic Inversions *********************************************************)
+lemma in_comp_abst_hd (t) (q):
+      q Ļµ t ā†’ š—Ÿā——q Ļµ š›Œ.t.
+/2 width=3 by ex2_intro/ qed.
 
-lemma in_comp_inv_iref (t) (p) (n):
-      p Ļµ š›—n.t ā†’
-      āˆƒāˆƒq. š—±nā——š—ŗā——q = p & q Ļµ t.
-#t #p #n * #q #Hq #Hp
-/2 width=3 by ex2_intro/
-qed-.
-(*
-lemma prototerm_in_root_inv_lcons_oref:
-      āˆ€p,l,n. lā——p Ļµ ā–µ#n ā†’
-      āˆ§āˆ§ š—±n = l & šž = p.
-#p #l #n * #q
-<list_append_lcons_sn #H0 destruct -H0
-elim (eq_inv_list_empty_append ā€¦ e0) -e0 #H0 #_
-/2 width=1 by conj/
-qed-.
+lemma in_comp_appl_sd (u) (t) (q):
+      q Ļµ u ā†’ š—¦ā——q Ļµ ļ¼ u.t.
+/3 width=3 by ex2_intro, or_introl/ qed.
 
-lemma prototerm_in_root_inv_lcons_iref:
-      āˆ€t,p,l,n. lā——p Ļµ ā–µš›—n.t ā†’
-      āˆ§āˆ§ š—±n = l & p Ļµ ā–µÉ±.t.
-#t #p #l #n * #q * #r #Hr
-<list_append_lcons_sn #H0 destruct -H0
-/4 width=4 by ex2_intro, ex_intro, conj/
-qed-.
+lemma in_comp_appl_hd (u) (t) (q):
+      q Ļµ t ā†’ š—”ā——q Ļµ ļ¼ u.t.
+/3 width=3 by ex2_intro, or_intror/ qed.
+
+(* Basic inversions *********************************************************)
 
-lemma prototerm_in_root_inv_lcons_mark:
-      āˆ€t,p,l. lā——p Ļµ ā–µÉ±.t ā†’
-      āˆ§āˆ§ š—ŗ = l & p Ļµ ā–µt.
-#t #p #l * #q * #r #Hr
-<list_append_lcons_sn #H0 destruct
-/3 width=2 by ex_intro, conj/
+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-.
 
-lemma prototerm_in_root_inv_lcons_abst:
-      āˆ€t,p,l. lā——p Ļµ ā–µš›Œ.t ā†’
-      āˆ§āˆ§ š—Ÿ = l & p Ļµ ā–µt.
-#t #p #l * #q * #r #Hr
-<list_append_lcons_sn #H0 destruct
-/3 width=2 by ex_intro, conj/
+lemma in_comp_inv_abst (t) (p):
+      p Ļµ š›Œ.t ā†’
+      āˆƒāˆƒq. š—Ÿā——q = p & q Ļµ t.
+#t #p * #q #Hq #Hp
+/2 width=3 by ex2_intro/
 qed-.
 
-lemma prototerm_in_root_inv_lcons_appl:
-      āˆ€u,t,p,l. lā——p Ļµ ā–µ@u.t ā†’
-      āˆØāˆØ āˆ§āˆ§ š—¦ = l & p Ļµ ā–µu
-       | āˆ§āˆ§ š—” = l & p Ļµ ā–µt.
-#u #t #p #l * #q * * #r #Hr
-<list_append_lcons_sn #H0 destruct
-/4 width=2 by ex_intro, or_introl, or_intror, conj/
+lemma in_comp_inv_appl (u) (t) (p):
+      p Ļµ ļ¼ u.t ā†’
+      āˆØāˆØ āˆƒāˆƒq. š—¦ā——q = p & q Ļµ u
+       | āˆƒāˆƒq. š—”ā——q = p & q Ļµ t.
+#u #t #p * * #q #Hq #Hp
+/3 width=3 by ex2_intro, or_introl, or_intror/
 qed-.
-*)
+
+(* Advanced inversions ******************************************************)
+
+lemma in_comp_inv_abst_hd (t) (p):
+      (š—Ÿā——p) Ļµ š›Œ.t ā†’ p Ļµ t.
+#t #p #H0
+elim (in_comp_inv_abst ā€¦ H0) -H0 #q #H0 #Hq
+elim (eq_inv_list_rcons_bi ????? H0) -H0 #H1 #H2 destruct //
+qed-. 
+
+lemma in_comp_inv_appl_sd (u) (t) (p):
+      (š—¦ā——p) Ļµ ļ¼ u.t ā†’ p Ļµ u.
+#u #t #p #H0
+elim (in_comp_inv_appl ā€¦ H0) -H0 * #q #H0 #Hq
+elim (eq_inv_list_rcons_bi ????? H0) -H0 #H1 #H2 destruct //
+qed-. 
+
+lemma in_comp_inv_appl_hd (u) (t) (p):
+      (š—”ā——p) Ļµ ļ¼ u.t ā†’ p Ļµ t.
+#u #t #p #H0
+elim (in_comp_inv_appl ā€¦ H0) -H0 * #q #H0 #Hq
+elim (eq_inv_list_rcons_bi ????? H0) -H0 #H1 #H2 destruct //
+qed-.