X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground_2%2Frelocation%2Fmr2_at.ma;h=a374857d4fa999a20987a27ec1726245425a35be;hb=75f395f0febd02de8e0f881d918a8812b1425c8d;hp=b3517a77b6165b4beb31732aa2b78d307b2ad4ac;hpb=d59f344b1e4b377e2f06abd9f8856d686d21b222;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground_2/relocation/mr2_at.ma b/matita/matita/contribs/lambdadelta/ground_2/relocation/mr2_at.ma index b3517a77b..a374857d4 100644 --- a/matita/matita/contribs/lambdadelta/ground_2/relocation/mr2_at.ma +++ b/matita/matita/contribs/lambdadelta/ground_2/relocation/mr2_at.ma @@ -30,7 +30,7 @@ interpretation "application (multiple relocation with pairs)" (* Basic inversion lemmas ***************************************************) -fact at_inv_nil_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≡ i2 → cs = ◊ → i1 = i2. +fact at_inv_nil_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≘ i2 → cs = ◊ → i1 = i2. #cs #i1 #i2 * -cs -i1 -i2 [ // | #cs #l #m #i1 #i2 #_ #_ #H destruct @@ -38,13 +38,13 @@ fact at_inv_nil_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≡ i2 → cs = ◊ → i1 = i2. ] qed-. -lemma at_inv_nil: ∀i1,i2. @⦃i1, ◊⦄ ≡ i2 → i1 = i2. +lemma at_inv_nil: ∀i1,i2. @⦃i1, ◊⦄ ≘ i2 → i1 = i2. /2 width=3 by at_inv_nil_aux/ qed-. -fact at_inv_cons_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≡ i2 → +fact at_inv_cons_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≘ i2 → ∀l,m,cs0. cs = {l, m} @ cs0 → - i1 < l ∧ @⦃i1, cs0⦄ ≡ i2 ∨ - l ≤ i1 ∧ @⦃i1 + m, cs0⦄ ≡ i2. + i1 < l ∧ @⦃i1, cs0⦄ ≘ i2 ∨ + l ≤ i1 ∧ @⦃i1 + m, cs0⦄ ≘ i2. #cs #i1 #i2 * -cs -i1 -i2 [ #i #l #m #cs #H destruct | #cs1 #l1 #m1 #i1 #i2 #Hil1 #Hi12 #l2 #m2 #cs2 #H destruct /3 width=1 by or_introl, conj/ @@ -52,20 +52,20 @@ fact at_inv_cons_aux: ∀cs,i1,i2. @⦃i1, cs⦄ ≡ i2 → ] qed-. -lemma at_inv_cons: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≡ i2 → - i1 < l ∧ @⦃i1, cs⦄ ≡ i2 ∨ - l ≤ i1 ∧ @⦃i1 + m, cs⦄ ≡ i2. +lemma at_inv_cons: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≘ i2 → + i1 < l ∧ @⦃i1, cs⦄ ≘ i2 ∨ + l ≤ i1 ∧ @⦃i1 + m, cs⦄ ≘ i2. /2 width=3 by at_inv_cons_aux/ qed-. -lemma at_inv_cons_lt: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≡ i2 → - i1 < l → @⦃i1, cs⦄ ≡ i2. +lemma at_inv_cons_lt: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≘ i2 → + i1 < l → @⦃i1, cs⦄ ≘ i2. #cs #l #m #i1 #m2 #H elim (at_inv_cons … H) -H * // #Hli1 #_ #Hi1l elim (lt_le_false … Hi1l Hli1) qed-. -lemma at_inv_cons_ge: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≡ i2 → - l ≤ i1 → @⦃i1 + m, cs⦄ ≡ i2. +lemma at_inv_cons_ge: ∀cs,l,m,i1,i2. @⦃i1, {l, m} @ cs⦄ ≘ i2 → + l ≤ i1 → @⦃i1 + m, cs⦄ ≘ i2. #cs #l #m #i1 #m2 #H elim (at_inv_cons … H) -H * // #Hi1l #_ #Hli1 elim (lt_le_false … Hi1l Hli1) @@ -73,7 +73,7 @@ qed-. (* Main properties **********************************************************) -theorem at_mono: ∀cs,i,i1. @⦃i, cs⦄ ≡ i1 → ∀i2. @⦃i, cs⦄ ≡ i2 → i1 = i2. +theorem at_mono: ∀cs,i,i1. @⦃i, cs⦄ ≘ i1 → ∀i2. @⦃i, cs⦄ ≘ i2 → i1 = i2. #cs #i #i1 #H elim H -cs -i -i1 [ #i #x #H <(at_inv_nil … H) -x // | #cs #l #m #i #i1 #Hil #_ #IHi1 #x #H