| j = i1 + 1, 1 < j, 0 < j, ∀ j0, r, i, st, r0, i0, st0. i→n(j0) < i→n(j) → (true → (getarray(r, i, j0, st) = getarray(r0, i0, j0, st0) ↔ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] = st0[r0 -- (i0 + j1) ']))) ⊦ getarray(r, i, i1, st) + st[r -- (i + j - 1) '] ' = getarray(r0, i0, j, st0) ↔ (∀ j0. 0 ≤ j0 ∧ j0 < j → st[r -- (i + j0) '] = st0[r0 -- (i0 + j0) ']) |
0 < i1, ∀ j0, r, i, st, r0, i0, st0. i→n(j0) < i→n(i1 + 1) → (true → (getarray(r, i, j0, st) = getarray(r0, i0, j0, st0) ↔ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] = st0[r0 -- (i0 + j1) ']))) ⊦ getarray(r, i, i1, st) + st[r -- (i + i1) '] ' = getarray(r0, i0, i1 + 1, st0) ↔ (∀ j. j ≤ i1 ∧ 0 ≤ j → st[r -- (i + j) '] = st0[r0 -- (i0 + j) '])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ 0 < i ∧ 0 < j → 0 < i + j], [CSIMPSEQ : ⊦ ((* j)) < i0 + ((* j0)) ↔ j - j0 < i0], [CSIMPSEQ : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ ((* i)) + i0 - ((* j)) = (i - j) + i0])]]