]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/syntax/bdd_term.ma
update in delayed_updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / syntax / bdd_term.ma
index 0101b8d9361671cef4edcdb00f89c8fa34d70c05..897773a42d64d67b19e83d777b87fcca6975cd2d 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
+include "delayed_updating/syntax/prototerm_constructors.ma".
+include "delayed_updating/syntax/prototerm_equivalence.ma".
+include "delayed_updating/notation/functions/class_d_phi_0.ma".
 include "ground/xoa/or_5.ma".
 include "ground/xoa/ex_3_1.ma".
 include "ground/xoa/ex_4_2.ma".
 include "ground/xoa/ex_4_3.ma".
 include "ground/xoa/ex_5_3.ma".
-include "delayed_updating/syntax/preterm_equivalence.ma".
-include "delayed_updating/syntax/preterm_constructors.ma".
-include "delayed_updating/notation/functions/class_d_phi_0.ma".
 
 (* BY-DEPTH DELAYED (BDD) TERM **********************************************)
 
-inductive bdd: π’«β¨preterm❩ β‰
+inductive bdd: π’«β¨prototerm❩ β‰
 | bdd_oref: βˆ€n. bdd (#n)
 | bdd_iref: βˆ€t,n. bdd t β†’ bdd (𝛗n.t)
 | bdd_abst: βˆ€t. bdd t β†’ bdd (π›Œ.t)
@@ -32,15 +32,17 @@ inductive bdd: π’«β¨preterm❩ β‰
 .
 
 interpretation
-  "by-depth delayed (preterm)"
+  "by-depth delayed (prototerm)"
   'ClassDPhi = (bdd).
 
+(*
+
 (* Basic inversions *********************************************************)
 
 lemma bdd_inv_in_comp_gen:
       βˆ€t,p. t Ο΅ πƒπ›— β†’ p Ο΅ t β†’
       βˆ¨βˆ¨ βˆƒβˆƒn. #n β‡” t & π—±nβ——πž = p
-       | βˆƒβˆƒu,q,n. u Ο΅ πƒπ›— & q Ο΅ u & π›—n.u β‡” t & π—±nβ——q = p
+       | βˆƒβˆƒu,q,n. u Ο΅ πƒπ›— & q Ο΅ u & π›—n.u β‡” t & π—±n◗𝗺◗q = p
        | βˆƒβˆƒu,q. u Ο΅ πƒπ›— & q Ο΅ u & π›Œ.u β‡” t & π—Ÿβ——q = p
        | βˆƒβˆƒv,u,q. v Ο΅ πƒπ›— & u Ο΅ πƒπ›— & q Ο΅ u & @v.u β‡” t & π—”β——q = p
        | βˆƒβˆƒv,u,q. v Ο΅ πƒπ›— & u Ο΅ πƒπ›— & q Ο΅ v & @v.u β‡” t & π—¦β——q = p
@@ -64,12 +66,13 @@ qed-.
 lemma bdd_inv_in_comp_d:
       βˆ€t,q,n. t Ο΅ πƒπ›— β†’ π—±nβ——q Ο΅ t β†’
       βˆ¨βˆ¨ βˆ§βˆ§ #n β‡” t & πž = q
-       | βˆƒβˆƒu. u Ο΅ πƒπ›— & q Ο΅ u & π›—n.u β‡” t
+       | βˆƒβˆƒu. u Ο΅ πƒπ›— & q Ο΅ Ι±.u & π›—n.u β‡” t
 .
 #t #q #n #Ht #Hq
 elim (bdd_inv_in_comp_gen β€¦ Ht Hq) -Ht -Hq *
 [ #n0 #H1 #H2 destruct /3 width=1 by or_introl, conj/
-| #u0 #q0 #n0 #Hu0 #Hq0 #H1 #H2 destruct /3 width=4 by ex3_intro, or_intror/
+| #u0 #q0 #n0 #Hu0 #Hq0 #H1 #H2 destruct
+ /4 width=4 by ex3_intro, ex2_intro, or_intror/
 | #u0 #q0 #_ #_ #_ #H0 destruct
 | #v0 #u0 #q0 #_ #_ #_ #_ #H0 destruct
 | #v0 #u0 #q0 #_ #_ #_ #_ #H0 destruct
@@ -79,7 +82,7 @@ qed-.
 lemma bdd_inv_in_root_d:
       βˆ€t,q,n. t Ο΅ πƒπ›— β†’ π—±nβ——q Ο΅ β–΅t β†’
       βˆ¨βˆ¨ βˆ§βˆ§ #n β‡” t & πž = q
-       | βˆƒβˆƒu. u Ο΅ πƒπ›— & q Ο΅ β–΅u & π›—n.u β‡” t
+       | βˆƒβˆƒu. u Ο΅ πƒπ›— & q Ο΅ β–΅Ι±.u & π›—n.u β‡” t
 .
 #t #q #n #Ht * #r #Hq
 elim (bdd_inv_in_comp_d β€¦ Ht Hq) -Ht -Hq *
@@ -170,13 +173,13 @@ lemma bbd_mono_in_root_d:
 [ #t #Ht <list_cons_comm <list_cons_comm #Hn #Hl
   elim (bdd_inv_in_root_d β€¦ Ht Hn) -Ht -Hn *
   [ #H0 #_
-    lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+    lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
     lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl
-    elim (preterm_in_root_inv_lcons_oref β€¦ Hl) -Hl //
+    elim (prototerm_in_root_inv_lcons_oref β€¦ Hl) -Hl //
   | #u #_ #_ #H0
-    lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+    lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
     lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl
-    elim (preterm_in_root_inv_lcons_iref β€¦ Hl) -Hl //
+    elim (prototerm_in_root_inv_lcons_iref β€¦ Hl) -Hl //
   ]
 | * [ #m ] #p #IH #t #Ht
   <list_cons_shift <list_cons_shift #Hn #Hl
@@ -184,29 +187,30 @@ lemma bbd_mono_in_root_d:
     [ #_ #H0
       elim (eq_inv_list_empty_rcons ??? H0)
     | #u #Hu #Hp #H0
-      lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+      lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
       lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl
-      elim (preterm_in_root_inv_lcons_iref β€¦ Hl) -Hl #_ #Hl
+      elim (prototerm_in_root_inv_lcons_iref β€¦ Hl) -Hl #_ #Hl
       /2 width=4 by/
     ]
   | elim (bdd_inv_in_root_L β€¦ Ht Hn) -Ht -Hn
     #u #Hu #Hp #H0
-    lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+    lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
     lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl  
-    elim (preterm_in_root_inv_lcons_abst β€¦ Hl) -Hl #_ #Hl
+    elim (prototerm_in_root_inv_lcons_abst β€¦ Hl) -Hl #_ #Hl
     /2 width=4 by/
   | elim (bdd_inv_in_root_A β€¦ Ht Hn) -Ht -Hn
     #v #u #_ #Hu #Hp #H0
-    lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+    lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
     lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl
-    elim (preterm_in_root_inv_lcons_appl β€¦ Hl) -Hl * #H0 #Hl destruct
+    elim (prototerm_in_root_inv_lcons_appl β€¦ Hl) -Hl * #H0 #Hl destruct
     /2 width=4 by/
   | elim (bdd_inv_in_root_S β€¦ Ht Hn) -Ht -Hn
     #v #u #Hv #_ #Hp #H0
-    lapply (preterm_root_eq_repl β€¦ H0) -H0 #H0
+    lapply (prototerm_root_eq_repl β€¦ H0) -H0 #H0
     lapply (subset_in_eq_repl_fwd ?? β€¦ Hl β€¦ H0) -H0 -Hl #Hl
-    elim (preterm_in_root_inv_lcons_appl β€¦ Hl) -Hl * #H0 #Hl destruct
+    elim (prototerm_in_root_inv_lcons_appl β€¦ Hl) -Hl * #H0 #Hl destruct
     /2 width=4 by/
   ]
 ]
 qed-.
+*)
\ No newline at end of file