| n→i(# vals0) + j < sk .index ∨ r0 ≠ r ∨ is_fskey(sk) ∨ sk .index < j, r0 ≠ r ∨ sk ≠ j ' ⊦ ¬ j < sk .index ∨ ¬ is_indexkey(sk) ∨ r0 ≠ r ∨ ¬ sk .index ≤ n→i(# vals0) + j, (putArray(vals0, r, j + 1, st)[r0 -- sk, val0][r -- j ', val]) = (putArray(vals0, r, j + 1, st[r0 -- sk, val0])[r -- j ', val]) |
is_fskey(sk), sk .index ≤ n→i(# vals0) + j, is_indexkey(sk), j < sk .index ⊦ sk = j ', (putArray(vals0, r, j + 1, st)[r -- sk, val0][r -- j ', val]) = (putArray(vals0, r, j + 1, st[r -- sk, val0])[r -- j ', val]), vals0 = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPSEQ : ⊦ 0 < n ↔ n ≠ 0], [CSIMPSEQ : 0 ≤ i ⊦ ((* i)) < n→i(n) ↔ i→n(i) < n], [CSIMPSEQ : ⊦ i < i + j ↔ 0 < j], [CSIMPFORWARD : ⊦ i < j ∧ j ≤ j0 → i < j0], [CSIMPSEQ : ⊦ i < j → ¬ j < i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ i + j = j + i])]]