| 0 < i1, ∀ j. ¬ i1 < j ∧ ¬ j < 0 → st[r -- (i + j) '] = st0[r0 -- (i0 + j) '], ∀ 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) = getarray(r0, i0, i1, st0), ∀ j. ¬ j < 0 ∧ ¬ i1 ≤ j → st[r -- (i + j) '] = st0[r0 -- (i0 + j) '], getarray(r, i, i1, st) = getarray(r0, i0, i1, st0) ∧ st[r -- (i + i1) '] = st0[r0 -- (i0 + i1) '] |
0 < i1, j < i1, 0 ≤ j, ∀ j. ¬ i1 < j ∧ ¬ j < 0 → st[r -- (i + j) '] = st0[r0 -- (i0 + j) '], ∀ 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) = getarray(r0, i0, i1, st0), st[r -- (i + j) '] = st0[r0 -- (i0 + j) ']
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i])]]