| ∀ i, ints0, refs, st, ty, r, ints1. ints#(ints1) < ints#(ints) → (true → (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[_mode]) = st[_mode]) ⊦ # ints = 1, (addarraymultlist(r, ty, st, refs, ints, ints0, i)[_mode]) = st[_mode] |
⊦ # ints > 1 ∧ ints .first ≤ 0 → addarraymultlist(r, ty, st, refs, ints, ints0, i) = (st[r -- _type, typeval(mktype_from_dims(ty, n→i(# ints) + i))][r -- _length, intval(ints0 .first)])
¬ (# ints > 1 ∧ ints .first ≤ 0), ∀ i, ints0, refs, st, ty, r, ints1. ints#(ints1) < ints#(ints) → (true → (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[_mode]) = st[_mode]) ⊦ # ints = 1, (addarraymultlist(r, ty, st, refs, ints, ints0, i)[_mode]) = st[_mode]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ _mode ≠ r -- _length], [CSIMPSEQ : ⊦ r -- _type ≠ _mode])], [EXTRATERMS : (i, ints0, ints, refs, st, ty, r)]]