| ∀ st0, j0, i0, r0, st, i, r, j1. i→n(j1) < i→n(j) → ( true → ( bytevalues(getarray(r, i, j1, st)) = bytevalues(getarray(r0, i0, j0, st0)) ↔ j1 = j0 ∧ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] .byteval = st0[r0 -- (i0 + j1) '] .byteval) ∧ ¬ j0 < 0 ∨ ¬ 0 < j1 ∧ ¬ 0 < j0)) ⊦ bytevalues(getarray(r, i, j, st)) = bytevalues(getarray(r0, i0, j0, st0)) ↔ j = j0 ∧ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] .byteval = st0[r0 -- (i0 + j1) '] .byteval) ∧ ¬ j0 < 0 ∨ ¬ 0 < j ∧ ¬ 0 < j0 |
⊦ 0 < j → getarray(r, i, j, st) = st[r -- i '] ' + getarray(r, i + 1, j - 1, st)
⊦ j ≤ 0 → getarray(r, i, j, st) = []
⊦ getarray(r, i, j, st) = [] ↔ j ≤ 0
0 < j, ∀ st0, j0, i0, r0, st, i, r, j1. i→n(j1) < i→n(j) → ( true → ( bytevalues(getarray(r, i, j1, st)) = bytevalues(getarray(r0, i0, j0, st0)) ↔ j1 = j0 ∧ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] .byteval = st0[r0 -- (i0 + j1) '] .byteval) ∧ ¬ j0 < 0 ∨ ¬ 0 < j1 ∧ ¬ 0 < j0)) ⊦ bytevalues(st[r -- i '] ' + getarray(r, i + 1, j - 1, st)) = bytevalues(getarray(r0, i0, j0, st0)) ↔ j = j0 ∧ (∀ j1. 0 ≤ j1 ∧ j1 < j0 → st[r -- (i + j1) '] .byteval = st0[r0 -- (i0 + j1) '] .byteval) ∧ ¬ j0 < 0 ∨ ¬ 0 < j ∧ ¬ 0 < j0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ bytevalues([]) = []], [CSIMPSEQ : ⊦ bytevalues(vals) = [] ↔ vals = []], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)])], [EXTRATERMS : (st, j, i, r)]]