| ¬ 1 < j, 0 ≤ i, i + j ≤ n→i(# vals), 0 < j, ∀ ty, st, r, vals, i, j0. i→n(j0) < i→n(j) → ( i + j0 ≤ n→i(# vals) ∧ 0 ≤ i ∧ 0 ≤ j0 → getarray(r, i, j0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j0), vals)) ⊦ getarray(r, i, j, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j), vals), 0 = j |
i < n→i(# vals), 0 ≤ i, ∀ ty, st, r, vals, i, j0. i→n(j0) < i→n(1) → ( i + j0 ≤ n→i(# vals) ∧ 0 ≤ i ∧ 0 ≤ j0 → getarray(r, i, j0, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), i→n(j0), vals)) ⊦ getarray(r, i, 1, addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals))])) = sublist(i→n(i), 1, vals), vals = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPSEQ : ⊦ 0 < n ↔ n ≠ 0], [CSIMPSEQ : 0 ≤ i ⊦ ((* i)) < n→i(n) ↔ i→n(i) < n], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 1 ≤ j ↔ i < j], [CSIMPSEQ : ⊦ 0 < i → (i ≤ 1 ↔ i = 1)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i])]]