| (r -- n→i(# vals1) ') .ref ≠ r ∨ is_fskey((r -- n→i(# vals1) ') .key) ∨ (r -- n→i(# vals1) ') .key .index < 0 ∨ n→i(# vals1) + 0 ≤ (r -- n→i(# vals1) ') .key .index, ∀ st, ty, r, vals0. # vals0 < # (vals1 + val ') → (true → putArray(vals0, r, 0, addarray(r, initial_value(ty), n→i(# vals0), st)) = addarray(r, vals0, 0, st)) ⊦ (putArray(vals1, r, 0, addarray(r, initial_value(ty), n→i(# vals1), st))[r -- n→i(# vals1) ', val]) = (addarray(r, vals1, 0, st)[r -- n→i(# vals1) ', val]) |
∀ st, ty, r, vals0. # vals0 < # (vals1 + val ') → (true → putArray(vals0, r, 0, addarray(r, initial_value(ty), n→i(# vals0), st)) = addarray(r, vals0, 0, st)) ⊦ (putArray(vals1, r, 0, addarray(r, initial_value(ty), n→i(# vals1), st))[r -- n→i(# vals1) ', val]) = (addarray(r, vals1, 0, st)[r -- n→i(# vals1) ', val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m ≤ m], [CSIMPSEQ : ⊦ n→i(m) ≤ n→i(n) ↔ m ≤ n], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ ¬ n→i(n) < 0], [CSIMPSEQ : ⊦ i ' .index = i], [CSIMPSEQ : ⊦ ¬ is_fskey(i ')], [CSIMPSEQ : ⊦ (r -- sk) .key = sk], [CSIMPSEQ : ⊦ (r -- sk) .ref = r])]]