| i3 - j0 - 1 = i5 * (i1 - i2) + j1 ∧ 0 ≤ j1 ∧ j1 < i1 - i2 ∧ 0 ≤ i5 ∧ 0 < i1 - i2 ∧ 0 ≤ i3 - j0 - 1, i2 + i3 = (i4 * (i1 - i2) + j0) + i + 1, st0[r2 -- _length] = intval(i0), st0[r2 -- _type] = typeval(mkarraytype(ty0)), 0 ≤ j0, j0 + i2 < i1, i + i1 < 2 * i2 + i3, 1 < i0, 0 < i1, i1 < i0, r2 -- i ' ∈ st0, 0 < i3, i2 < i0, i < i0, r2 ∈ st0, ty0 ≤ ty, r2 -- _type ∈ st0, 0 ≤ i3, 0 ≤ i2, i2 + i3 ≤ i0, r2 -- _length ∈ st0, 0 ≤ i0, i2 ≤ i, 0 ≤ i, i < i2 + i3, i1 < i2 + i3, i2 < i1, 0 < i0, 1 < i2 + i3, 0 < i2 + i3, 0 ≤ i4, j0 + i2 < i0, j0 < i3, ∀ j. ¬ j < 0 ∧ ¬ i0 ≤ j → okval(st0[r2 -- j '], ty), ∀ j. ¬ j < 0 ∧ ¬ i3 ≤ j → st0[r2 -- (i1 + j) '] = st0[r2 -- (i2 + j) '], ∀ j. ¬ j < 0 ∧ ¬ i0 ≤ j → r2 -- j ' ∈ st0 ⊦ j1 + (i5 - i4 - 1) * (i1 - i2) < i3 ∧ 0 ≤ i5 - i4 - 1 ∧ 0 ≤ i5 - i4 - 1 ∧ i5 - i4 - 1 ≤ i5 - i4 - 1 ∧ 0 ≤ j1 ∧ (∀ j. 0 ≤ j ∧ j < i3 → st0[r2 -- (i1 + j) '] = st0[r2 -- (i2 + j) ']), st0[r2 -- (i1 + j1) '] = st0[r2 -- (i1 + j1 + (i5 - i4 - 1) * (i1 - i2)) '], r2 = jvmref |
i2 + i5 * (i1 - i2) + j1 = i4 * (i1 - i2) + i, st0[r2 -- _length] = intval(i0), st0[r2 -- _type] = typeval(mkarraytype(ty0)), i + i1 ≤ 2 * i2 + i5 * (i1 - i2) + j1 + j0, 1 < i0, 0 < i1, i1 < i0, r2 -- i ' ∈ st0, i2 < i0, i < i0, r2 ∈ st0, ty0 ≤ ty, r2 -- _type ∈ st0, 0 ≤ i2, i2 + i5 * (i1 - i2) + j1 + j0 < i0, r2 -- _length ∈ st0, 0 ≤ i0, i2 ≤ i, 0 ≤ i, i ≤ i2 + i5 * (i1 - i2) + j1 + j0, i1 ≤ i2 + i5 * (i1 - i2) + j1 + j0, 0 < i0, 0 ≤ i4, j0 + i2 < i0, j1 + i2 < i1, i2 < i1, 0 ≤ j1, j1 + i2 < i0, 0 ≤ i5, 0 ≤ j0, j0 + i2 < i1, 0 < i2 + i5 * (i1 - i2) + j1 + j0, 0 ≤ i5 * (i1 - i2) + j1 + j0, 0 ≤ i2 + i5 * (i1 - i2) + j1 + j0, 0 ≤ i5 * (i1 - i2) + j1, 0 ≤ i5 * (i1 - i2) + j0, 0 < i5 * (i1 - i2) + j1 + j0, 0 < i5 * (i1 - i2) + j0, 0 < i5 * (i1 - i2) + j1, ∀ j2. ¬ j2 < 0 ∧ ¬ i5 * (i1 - i2) + j1 + j0 < j2 → st0[r2 -- (i1 + j2) '] = st0[r2 -- (i2 + j2) '], ∀ j. ¬ j < 0 ∧ ¬ i0 ≤ j → okval(st0[r2 -- j '], ty), ∀ j. ¬ j < 0 ∧ ¬ i0 ≤ j → r2 -- j ' ∈ st0 ⊦ r2 = jvmref, st0[r2 -- (i1 + j1) '] = st0[r2 -- ((i1 - i2) * (i5 - i4 + 1) + i1 + j1) '], ¬ i5 * (i1 - i2) + j0 < (i1 - i2) * (i5 - i4 + 1) ∧ ¬ i5 ≤ i4 ∧ (0 ≤ j ∧ j ≤ i5 * (i1 - i2) + j1 + j0 → st0[r2 -- (i1 + j) '] = st0[r2 -- (i2 + j) '])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i < i + j ↔ 0 < j], [CSIMPFORWARD : ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1], [CSIMPFORWARD : ⊦ i < j ∧ j ≤ j0 → i < j0], [CSIMPSEQ : ⊦ i + j ≤ i0 + j ↔ i ≤ i0], [CSIMPSEQ : i0 ≠ 0, i0 ≤ i ⊦ ((* i)) ≤ j → ((* i0)) ≤ j], [CSIMPSEQ : ⊦ ((* j)) ≤ i0 + ((* j0)) ↔ j - j0 ≤ i0], [CSIMPSEQ : ⊦ (~1) < i ↔ 0 ≤ i], [CSIMPSEQ : ⊦ ((* j)) < i0 + ((* j0)) ↔ j - j0 < i0], [CSIMPSEQ : ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j], [CSIMPSEQ : ⊦ i ≤ i + j ↔ 0 ≤ j], [CSIMPSEQ : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ i + j < i + i0 ↔ j < i0], [CSIMPSEQ : ⊦ i + j = i + i0 ↔ j = i0], [CSIMPFORWARD : ⊦ i < i0 ∧ i0 < i1 → i < i1], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i + (j - i) = j], [CSIMPSEQ : ⊦ i - j ≤ i0 ↔ i ≤ j + i0], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i + 1 ≤ j ↔ i < j], [CSIMPSEQ : ⊦ i ≤ j - i0 ↔ i + i0 ≤ j], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i < j - i0 ↔ i + i0 < j], [CSIMPSEQ : ⊦ i - j = i0 ↔ i = i0 + j], [CSIMPSEQ : ⊦ i - i1 - j = i - i1 + j])]]