X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Fnstream_after.ma;h=321773c634594c788e54fbedf1d3340968970ea8;hb=75f395f0febd02de8e0f881d918a8812b1425c8d;hp=977a0ca023eeab6e57f90f744303bfcb4c03ebe3;hpb=d59f344b1e4b377e2f06abd9f8856d686d21b222;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/nstream_after.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/nstream_after.ma index 977a0ca02..321773c63 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/nstream_after.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/nstream_after.ma @@ -64,24 +64,24 @@ qed-. (* Specific properties on after *********************************************) -lemma after_O2: ∀f2,f1,f. f2 ⊚ f1 ≡ f → - ∀n. n@f2 ⊚ ↑f1 ≡ n@f. +lemma after_O2: ∀f2,f1,f. f2 ⊚ f1 ≘ f → + ∀n. n@f2 ⊚ ↑f1 ≘ n@f. #f2 #f1 #f #Hf #n elim n -n /2 width=7 by after_refl, after_next/ qed. -lemma after_S2: ∀f2,f1,f,n1,n. f2 ⊚ n1@f1 ≡ n@f → - ∀n2. n2@f2 ⊚ ⫯n1@f1 ≡ ⫯(n2+n)@f. +lemma after_S2: ∀f2,f1,f,n1,n. f2 ⊚ n1@f1 ≘ n@f → + ∀n2. n2@f2 ⊚ ⫯n1@f1 ≘ ⫯(n2+n)@f. #f2 #f1 #f #n1 #n #Hf #n2 elim n2 -n2 /2 width=7 by after_next, after_push/ qed. -lemma after_apply: ∀n1,f2,f1,f. (↓*[⫯n1] f2) ⊚ f1 ≡ f → f2 ⊚ n1@f1 ≡ f2@❴n1❵@f. +lemma after_apply: ∀n1,f2,f1,f. (↓*[⫯n1] f2) ⊚ f1 ≘ f → f2 ⊚ n1@f1 ≘ f2@❴n1❵@f. #n1 elim n1 -n1 [ * /2 width=1 by after_O2/ | #n1 #IH * /3 width=1 by after_S2/ ] qed-. -corec lemma after_total_aux: ∀f2,f1,f. f2 ∘ f1 = f → f2 ⊚ f1 ≡ f. +corec lemma after_total_aux: ∀f2,f1,f. f2 ∘ f1 = f → f2 ⊚ f1 ≘ f. * #n2 #f2 * #n1 #f1 * #n #f cases n2 -n2 [ cases n1 -n1 [ #H cases (compose_inv_O2 … H) -H /3 width=7 by after_refl, eq_f2/ @@ -91,13 +91,13 @@ corec lemma after_total_aux: ∀f2,f1,f. f2 ∘ f1 = f → f2 ⊚ f1 ≡ f. ] qed-. -theorem after_total: ∀f1,f2. f2 ⊚ f1 ≡ f2 ∘ f1. +theorem after_total: ∀f1,f2. f2 ⊚ f1 ≘ f2 ∘ f1. /2 width=1 by after_total_aux/ qed. (* Specific inversion lemmas on after ***************************************) -lemma after_inv_xpx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≡ n@f → ∀f1. ↑f1 = g2 → - f2 ⊚ f1 ≡ f ∧ n2 = n. +lemma after_inv_xpx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≘ n@f → ∀f1. ↑f1 = g2 → + f2 ⊚ f1 ≘ f ∧ n2 = n. #f2 #g2 #f #n2 elim n2 -n2 [ #n #Hf #f1 #H2 elim (after_inv_ppx … Hf … H2) -g2 [2,3: // ] #g #Hf #H elim (push_inv_seq_dx … H) -H destruct /2 width=1 by conj/ @@ -108,8 +108,8 @@ lemma after_inv_xpx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≡ n@f → ∀f1. ↑f1 = g2 ] qed-. -lemma after_inv_xnx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≡ n@f → ∀f1. ⫯f1 = g2 → - ∃∃m. f2 ⊚ f1 ≡ m@f & ⫯(n2+m) = n. +lemma after_inv_xnx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≘ n@f → ∀f1. ⫯f1 = g2 → + ∃∃m. f2 ⊚ f1 ≘ m@f & ⫯(n2+m) = n. #f2 #g2 #f #n2 elim n2 -n2 [ #n #Hf #f1 #H2 elim (after_inv_pnx … Hf … H2) -g2 [2,3: // ] #g #Hf #H elim (next_inv_seq_dx … H) -H @@ -121,7 +121,7 @@ lemma after_inv_xnx: ∀f2,g2,f,n2,n. n2@f2 ⊚ g2 ≡ n@f → ∀f1. ⫯f1 = g2 ] qed-. -lemma after_inv_const: ∀f2,f1,f,n1,n. n@f2 ⊚ n1@f1 ≡ n@f → f2 ⊚ f1 ≡ f ∧ 0 = n1. +lemma after_inv_const: ∀f2,f1,f,n1,n. n@f2 ⊚ n1@f1 ≘ n@f → f2 ⊚ f1 ≘ f ∧ 0 = n1. #f2 #f1 #f #n1 #n elim n -n [ #H elim (after_inv_pxp … H) -H [ |*: // ] #g2 #Hf #H elim (push_inv_seq_dx … H) -H /2 width=1 by conj/ @@ -129,18 +129,18 @@ lemma after_inv_const: ∀f2,f1,f,n1,n. n@f2 ⊚ n1@f1 ≡ n@f → f2 ⊚ f1 ≡ ] qed-. -lemma after_inv_total: ∀f2,f1,f. f2 ⊚ f1 ≡ f → f2 ∘ f1 ≗ f. +lemma after_inv_total: ∀f2,f1,f. f2 ⊚ f1 ≘ f → f2 ∘ f1 ≗ f. /2 width=4 by after_mono/ qed-. (* Specific forward lemmas on after *****************************************) -lemma after_fwd_hd: ∀f2,f1,f,n1,n. f2 ⊚ n1@f1 ≡ n@f → f2@❴n1❵ = n. +lemma after_fwd_hd: ∀f2,f1,f,n1,n. f2 ⊚ n1@f1 ≘ n@f → f2@❴n1❵ = n. #f2 #f1 #f #n1 #n #H lapply (after_fwd_at ? n1 0 … H) -H [1,2,3: // ] /3 width=2 by at_inv_O1, sym_eq/ qed-. -lemma after_fwd_tls: ∀f,f1,n1,f2,n2,n. n2@f2 ⊚ n1@f1 ≡ n@f → - (↓*[n1]f2) ⊚ f1 ≡ f. +lemma after_fwd_tls: ∀f,f1,n1,f2,n2,n. n2@f2 ⊚ n1@f1 ≘ n@f → + (↓*[n1]f2) ⊚ f1 ≘ f. #f #f1 #n1 elim n1 -n1 [ #f2 #n2 #n #H elim (after_inv_xpx … H) -H // | #n1 #IH * #m1 #f2 #n2 #n #H elim (after_inv_xnx … H) -H [2,3: // ] @@ -148,6 +148,6 @@ lemma after_fwd_tls: ∀f,f1,n1,f2,n2,n. n2@f2 ⊚ n1@f1 ≡ n@f → ] qed-. -lemma after_inv_apply: ∀f2,f1,f,n2,n1,n. n2@f2 ⊚ n1@f1 ≡ n@f → - (n2@f2)@❴n1❵ = n ∧ (↓*[n1]f2) ⊚ f1 ≡ f. +lemma after_inv_apply: ∀f2,f1,f,n2,n1,n. n2@f2 ⊚ n1@f1 ≘ n@f → + (n2@f2)@❴n1❵ = n ∧ (↓*[n1]f2) ⊚ f1 ≘ f. /3 width=3 by after_fwd_tls, after_fwd_hd, conj/ qed-.