]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/equivalence/cpes.ma
- update in basic_2 and ground_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / equivalence / cpes.ma
index 7aeb07cb07bb1c25afe1c637faaf250652004107..41ac80b94cd36a2f653be0fcb052a8d4997c5804 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
-include "basic_2/notation/relations/dpconvstar_6.ma".
-include "basic_2/unfold/lsstas.ma".
-include "basic_2/equivalence/cpcs.ma".
+include "basic_2/notation/relations/dpconvstar_8.ma".
+include "basic_2/computation/cpds.ma".
 
 (* DECOMPOSED EXTENDED PARALLEL EQUIVALENCE FOR TERMS ***********************)
 
-definition cpes: ∀h. sd h → relation4 genv lenv term term ≝
-                 λh,g,G,L,T1,T2.
-                 ∃∃T,l1,l2. l2 ≤ l1 & ⦃G, L⦄ ⊢ T1 ▪[h, g] l1 & ⦃G, L⦄ ⊢ T1 •*[h, g, l2] T & ⦃G, L⦄ ⊢ T ⬌* T2.
+definition cpes: ∀h. sd h → nat → nat → relation4 genv lenv term term ≝
+                 λh,g,l1,l2,G,L,T1,T2.
+                 ∃∃T. ⦃G, L⦄ ⊢ T1 •*➡*[h, g, l1] T & ⦃G, L⦄ ⊢ T2 •*➡*[h, g, l2] T.
 
 interpretation "decomposed extended parallel equivalence (term)"
-   'DPConvStar h g G L T1 T2 = (cpes h g G L T1 T2).
+   'DPConvStar h g l1 l2 G L T1 T2 = (cpes h g l1 l2 G L T1 T2).
 
 (* Basic properties *********************************************************)
 
-lemma ssta_cpcs_cpes: ∀h,g,G,L,T1,T,T2,l. ⦃G, L⦄ ⊢ T1 ▪[h, g] l+1 → ⦃G, L⦄ ⊢ T1 •[h, g] T →
-                      ⦃G, L⦄ ⊢ T ⬌* T2 → ⦃G, L⦄ ⊢ T1 •*⬌*[h, g] T2.
-/3 width=7/ qed.
+lemma cpds_div: ∀h,g,G,L,T1,T2,T,l1,l2.
+                ⦃G, L⦄ ⊢ T1 •*➡*[h, g, l1] T → ⦃G, L⦄ ⊢ T2 •*➡*[h, g, l2] T →
+                ⦃G, L⦄ ⊢ T1 •*⬌*[h, g, l1, l2] T2.
+/2 width=3 by ex2_intro/ qed.
 
-lemma lsstas_cpes: ∀h,g,G,L,T1,T2,l. ⦃G, L⦄ ⊢ T1 ▪[h, g] l → ⦃G, L⦄ ⊢ T1 •*[h, g, l] T2 → ⦃G, L⦄ ⊢ T1 •*⬌*[h, g] T2.
-/2 width=7/ qed.
+lemma cpes_refl_O_O: ∀h,g,G,L,T,l. ⦃G, L⦄ ⊢ T ▪[h, g] l →
+                     ⦃G, L⦄ ⊢ T •*⬌*[h, g, 0, 0] T.
+/3 width=3 by cpds_refl, cpds_div/ qed.
 
-lemma cpcs_cpes: ∀h,g,G,L,T1,T2,l.  ⦃G, L⦄ ⊢ T1 ▪[h, g] l → ⦃G, L⦄ ⊢ T1 ⬌* T2 → ⦃G, L⦄ ⊢ T1 •*⬌*[h, g] T2.
-/2 width=7/ qed.
-
-lemma cpes_refl: ∀h,g,G,L,T,l. ⦃G, L⦄ ⊢ T ▪[h, g] l → ⦃G, L⦄ ⊢ T •*⬌*[h, g] T.
-/2 width=2/ qed.
-
-lemma cpes_strap1: ∀h,g,G,L,T1,T,T2.
-                   ⦃G, L⦄ ⊢ T1 •*⬌*[h, g] T → ⦃G, L⦄ ⊢ T ⬌ T2 → ⦃G, L⦄ ⊢ T1 •*⬌*[h, g] T2.
-#h #g #G #L #T1 #T #T2 * /3 width=9/
-qed.
+lemma cpes_sym: ∀h,g,G,L,T1,T2,l1,l2. ⦃G, L⦄ ⊢ T1 •*⬌*[h, g, l1, l2] T2 →
+                ⦃G, L⦄ ⊢ T2 •*⬌*[h, g, l2, l1] T1.
+#h #g #G #L #T1 #T2 #L1 #l2 * /2 width=3 by cpds_div/
+qed-.