]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/static_2/static/frees_fqup.ma
update in ground_2, static_2, basic_2, apps_2, alpha_1
[helm.git] / matita / matita / contribs / lambdadelta / static_2 / static / frees_fqup.ma
index abaf4ff15945e715dcbe7d2c48e23b758488048f..05500252c002af036f93651bdd89355ed036fc53 100644 (file)
@@ -20,7 +20,7 @@ include "static_2/static/lsubf_lsubr.ma".
 (* Advanced properties ******************************************************)
 
 (* Note: this replaces lemma 1400 concluding the "big tree" theorem *)
-lemma frees_total: โˆ€L,T. โˆƒf. L โŠข ๐…*โฆƒTโฆ„ โ‰˜ f.
+lemma frees_total: โˆ€L,T. โˆƒf. L โŠข ๐…+โชTโซ โ‰˜ f.
 #L #T @(fqup_wf_ind_eq (โ“‰) โ€ฆ (โ‹†) L T) -L -T
 #G0 #L0 #T0 #IH #G #L * *
 [ /3 width=2 by frees_sort, ex_intro/
@@ -38,7 +38,7 @@ lemma frees_total: โˆ€L,T. โˆƒf. L โŠข ๐…*โฆƒTโฆ„ โ‰˜ f.
 | /3 width=2 by frees_gref, ex_intro/
 | #p #I #V #T #HG #HL #HT destruct
   elim (IH G L V) // #f1 #HV
-  elim (IH G (L.โ“‘{I}V) T) -IH // #f2 #HT
+  elim (IH G (L.โ“‘[I]V) T) -IH // #f2 #HT
   elim (sor_isfin_ex f1 (โซฑf2))
   /3 width=6 by frees_fwd_isfin, frees_bind, isfin_tl, ex_intro/
 | #I #V #T #HG #HL #HT destruct
@@ -51,10 +51,11 @@ qed-.
 
 (* Advanced main properties *************************************************)
 
-theorem frees_bind_void: โˆ€f1,L,V. L โŠข ๐…*โฆƒVโฆ„ โ‰˜ f1 โ†’ โˆ€f2,T. L.โ“ง โŠข ๐…*โฆƒTโฆ„ โ‰˜ f2 โ†’
-                         โˆ€f. f1 โ‹“ โซฑf2 โ‰˜ f โ†’ โˆ€p,I. L โŠข ๐…*โฆƒโ“‘{p,I}V.Tโฆ„ โ‰˜ f.
+theorem frees_bind_void:
+        โˆ€f1,L,V. L โŠข ๐…+โชVโซ โ‰˜ f1 โ†’ โˆ€f2,T. L.โ“ง โŠข ๐…+โชTโซ โ‰˜ f2 โ†’
+        โˆ€f. f1 โ‹“ โซฑf2 โ‰˜ f โ†’ โˆ€p,I. L โŠข ๐…+โชโ“‘[p,I]V.Tโซ โ‰˜ f.
 #f1 #L #V #Hf1 #f2 #T #Hf2 #f #Hf #p #I
-elim (frees_total (L.โ“‘{I}V) T) #f0 #Hf0
+elim (frees_total (L.โ“‘[I]V) T) #f0 #Hf0
 lapply (lsubr_lsubf โ€ฆ Hf2 โ€ฆ Hf0) -Hf2 /2 width=5 by lsubr_unit/ #H02
 elim (pn_split f2) * #g2 #H destruct
 [ elim (lsubf_inv_push2 โ€ฆ H02) -H02 #g0 #Z #Y #H02 #H0 #H destruct
@@ -78,8 +79,9 @@ qed-.
 
 (* Advanced inversion lemmas ************************************************)
 
-lemma frees_inv_bind_void: โˆ€f,p,I,L,V,T. L โŠข ๐…*โฆƒโ“‘{p,I}V.Tโฆ„ โ‰˜ f โ†’
-                           โˆƒโˆƒf1,f2. L โŠข ๐…*โฆƒVโฆ„ โ‰˜ f1 & L.โ“ง โŠข ๐…*โฆƒTโฆ„ โ‰˜ f2 & f1 โ‹“ โซฑf2 โ‰˜ f.
+lemma frees_inv_bind_void:
+      โˆ€f,p,I,L,V,T. L โŠข ๐…+โชโ“‘[p,I]V.Tโซ โ‰˜ f โ†’
+      โˆƒโˆƒf1,f2. L โŠข ๐…+โชVโซ โ‰˜ f1 & L.โ“ง โŠข ๐…+โชTโซ โ‰˜ f2 & f1 โ‹“ โซฑf2 โ‰˜ f.
 #f #p #I #L #V #T #H
 elim (frees_inv_bind โ€ฆ H) -H #f1 #f2 #Hf1 #Hf2 #Hf
 elim (frees_total (L.โ“ง) T) #f0 #Hf0
@@ -100,31 +102,31 @@ elim (pn_split f0) * #g0 #H destruct
 ]
 qed-.
 
-lemma frees_ind_void: โˆ€Q:relation3 โ€ฆ.
-                      (
-                         โˆ€f,L,s. ๐ˆโฆƒfโฆ„ โ†’  Q L (โ‹†s) f
-                      ) โ†’ (
-                         โˆ€f,i. ๐ˆโฆƒfโฆ„ โ†’  Q (โ‹†) (#i) (โซฏ*[i]โ†‘f)
-                      ) โ†’ (
-                         โˆ€f,I,L,V.
-                         L โŠข ๐…*โฆƒVโฆ„ โ‰˜ f โ†’  Q L V fโ†’ Q (L.โ“‘{I}V) (#O) (โ†‘f) 
-                      ) โ†’ (
-                         โˆ€f,I,L. ๐ˆโฆƒfโฆ„ โ†’  Q (L.โ“ค{I}) (#O) (โ†‘f)
-                      ) โ†’ (
-                         โˆ€f,I,L,i.
-                         L โŠข ๐…*โฆƒ#iโฆ„ โ‰˜ f โ†’  Q L (#i) f โ†’ Q (L.โ“˜{I}) (#(โ†‘i)) (โซฏf)
-                      ) โ†’ (
-                         โˆ€f,L,l. ๐ˆโฆƒfโฆ„ โ†’  Q L (ยงl) f
-                      ) โ†’ (
-                         โˆ€f1,f2,f,p,I,L,V,T.
-                         L โŠข ๐…*โฆƒVโฆ„ โ‰˜ f1 โ†’ L.โ“ง โŠข๐…*โฆƒTโฆ„โ‰˜ f2 โ†’ f1 โ‹“ โซฑf2 โ‰˜ f โ†’
-                         Q L V f1 โ†’ Q (L.โ“ง) T f2 โ†’ Q L (โ“‘{p,I}V.T) f
-                      ) โ†’ (
-                         โˆ€f1,f2,f,I,L,V,T.
-                         L โŠข ๐…*โฆƒVโฆ„ โ‰˜ f1 โ†’ L โŠข๐…*โฆƒTโฆ„ โ‰˜ f2 โ†’ f1 โ‹“ f2 โ‰˜ f โ†’
-                         Q L V f1 โ†’ Q L T f2 โ†’ Q L (โ“•{I}V.T) f
-                      ) โ†’
-                      โˆ€L,T,f. L โŠข ๐…*โฆƒTโฆ„ โ‰˜ f โ†’  Q L T f.
+lemma frees_ind_void (Q:relation3 โ€ฆ):
+      (
+        โˆ€f,L,s. ๐ˆโชfโซ โ†’  Q L (โ‹†s) f
+      ) โ†’ (
+        โˆ€f,i. ๐ˆโชfโซ โ†’  Q (โ‹†) (#i) (โซฏ*[i]โ†‘f)
+      ) โ†’ (
+        โˆ€f,I,L,V.
+        L โŠข ๐…+โชVโซ โ‰˜ f โ†’  Q L V fโ†’ Q (L.โ“‘[I]V) (#O) (โ†‘f)
+      ) โ†’ (
+        โˆ€f,I,L. ๐ˆโชfโซ โ†’  Q (L.โ“ค[I]) (#O) (โ†‘f)
+      ) โ†’ (
+        โˆ€f,I,L,i.
+        L โŠข ๐…+โช#iโซ โ‰˜ f โ†’  Q L (#i) f โ†’ Q (L.โ“˜[I]) (#(โ†‘i)) (โซฏf)
+      ) โ†’ (
+        โˆ€f,L,l. ๐ˆโชfโซ โ†’  Q L (ยงl) f
+      ) โ†’ (
+        โˆ€f1,f2,f,p,I,L,V,T.
+        L โŠข ๐…+โชVโซ โ‰˜ f1 โ†’ L.โ“ง โŠข๐…+โชTโซโ‰˜ f2 โ†’ f1 โ‹“ โซฑf2 โ‰˜ f โ†’
+        Q L V f1 โ†’ Q (L.โ“ง) T f2 โ†’ Q L (โ“‘[p,I]V.T) f
+      ) โ†’ (
+        โˆ€f1,f2,f,I,L,V,T.
+        L โŠข ๐…+โชVโซ โ‰˜ f1 โ†’ L โŠข๐…+โชTโซ โ‰˜ f2 โ†’ f1 โ‹“ f2 โ‰˜ f โ†’
+        Q L V f1 โ†’ Q L T f2 โ†’ Q L (โ“•[I]V.T) f
+      ) โ†’
+      โˆ€L,T,f. L โŠข ๐…+โชTโซ โ‰˜ f โ†’  Q L T f.
 #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #L #T
 @(fqup_wf_ind_eq (โ’ป) โ€ฆ (โ‹†) L T) -L -T #G0 #L0 #T0 #IH #G #L * *
 [ #s #HG #HL #HT #f #H destruct -IH