| ∀ 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 ≠ [] ∧ ¬ 0 < ints .first, ints ≠ [] ∧ ¬ ints .first < 2 |
⊦ # ints > 1 ∧ ints .first = 1 → addarraymultlist(r, ty, st, refs, ints, ints0, i) = addarraymultlist (refs .first, ty, st[r -- (ints .first - 1) ', refval(refs .first)][r -- _type, typeval(mktype_from_dims(ty, i + n→i(# ints)))][r -- _length, intval(ints0 .first)], refs .rest, ints .rest, ints0 .rest, i)
¬ (# ints > 1 ∧ ints .first = 1), ∀ 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 ≠ [] ∧ ¬ 0 < ints .first, ints ≠ [] ∧ ¬ ints .first < 2
# ints > 1 ∧ ints .first = 1, ∀ 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 (refs .first, ty, st[r -- (ints .first - 1) ', refval(refs .first)][r -- _type, typeval(mktype_from_dims(ty, i + n→i(# ints)))][r -- _length, intval(ints0 .first)], refs .rest, ints .rest, ints0 .rest, i) [_mode ] ) = st[_mode], ints ≠ [] ∧ ¬ 0 < ints .first, ints ≠ [] ∧ ¬ ints .first < 2
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (i, ints0, ints, refs, st, ty, r)]]