| i→n(countrefs2(ints)) ≤ # refs, ∀ sk, i, ints0, st, ty, r0, r, refs, ints1. ints#(ints1) < ints#(ints) → (i→n(countrefs2(ints1)) ≤ # refs → r = r0 ∨ (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[r0 -- sk]) = st[r0 -- sk] ∨ r0 ∈ refs) ⊦ (addarraymultlist(r, ty, st, refs, ints, ints0, i)[r0 -- sk]) = st[r0 -- sk], r = r0, r0 ∈ refs, # ints = 1 ∧ ¬ 0 < ints .first |
⊦ # ints = 1 ∧ ints .first > 0 → addarraymultlist(r, ty, st, refs, ints, ints0, i) = addarray(r, mktype_from_dims(ty, i), ints0 .first, st)
¬ (# ints = 1 ∧ ints .first > 0), i→n(countrefs2(ints)) ≤ # refs, ∀ sk, i, ints0, st, ty, r0, r, refs, ints1. ints#(ints1) < ints#(ints) → (i→n(countrefs2(ints1)) ≤ # refs → r = r0 ∨ (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[r0 -- sk]) = st[r0 -- sk] ∨ r0 ∈ refs) ⊦ (addarraymultlist(r, ty, st, refs, ints, ints0, i)[r0 -- sk]) = st[r0 -- sk], r = r0, r0 ∈ refs, # ints = 1 ∧ ¬ 0 < ints .first
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ r0 → (addarray(r, ty, i, st) [r0 -- sk ] ) = st[r0 -- sk]])], [EXTRATERMS : (i, ints0, ints, refs, st, ty, r)]]