| 2 ≤ i0, i→n(i0 * (countrefs2(ints2) + 1)) ≤ # refs, 0 ≤ i0, 0 < i0, ∀ sk, i, ints0, st, ty, r0, r, refs, ints1. ints#(ints1) < ints#(i0 + ints2) → (i→n(countrefs2(ints1)) ≤ # refs → r = r0 ∨ (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[r0 -- sk]) = st[r0 -- sk] ∨ r0 ∈ refs) ⊦ r = r0, ints2 = [], (addarraymultlist (refs .first, ty, addarraymultlist (r, ty, st[r -- (i0 - 1) ', refval(refs .first)][r -- _type, typeval(mktype_from_dims(ty, (1 + n→i(# ints2)) + i))][r -- _length, intval(ints0 .first)], refs .rest, (i0 - 1) ' + ints2, ints0, i), restn(i→n(countrefs2((i0 - 1) ' + ints2)), refs .rest), ints2, ints0 .rest, i) [r0 -- sk ] ) = st[r0 -- sk], r0 ∈ refs |
⊦ ¬ countrefs2(ints) < 0
refs = r1 + refs0 ∧ refs ≠ [], 2 ≤ i0, i→n(i0 * (countrefs2(ints2) + 1)) ≤ # refs, 0 ≤ i0, 0 < i0, ∀ sk, i, ints0, st, ty, r0, r, refs, ints1. ints#(ints1) < ints#(i0 + ints2) → (i→n(countrefs2(ints1)) ≤ # refs → r = r0 ∨ (addarraymultlist(r, ty, st, refs, ints1, ints0, i)[r0 -- sk]) = st[r0 -- sk] ∨ r0 ∈ refs) ⊦ r = r0, ints2 = [], (addarraymultlist (r1, ty, addarraymultlist (r, ty, st[r -- (i0 - 1) ', refval(r1)][r -- _type, typeval(mktype_from_dims(ty, (1 + n→i(# ints2)) + i))][r -- _length, intval(ints0 .first)], refs0, (i0 - 1) ' + ints2, ints0, i), restn(i→n(countrefs2((i0 - 1) ' + ints2)), refs0), ints2, ints0 .rest, i) [r0 -- sk ] ) = st[r0 -- sk], r0 ∈ refs
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # [] = 0], [CSIMPFORWARD : ⊦ i < ((* j)) ∧ j < 0 → i < 0], [CSIMPSEQ : ⊦ ¬ r ∈ []], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i * j = j * i], [CSIMPSEQ : ⊦ i * j * j0 = (i * j) * j0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ ((* j)) ≤ i0 + ((* j0)) ↔ j - j0 ≤ i0], [CSIMPSEQ : ⊦ 0 < i → (0 ≤ i * j ↔ 0 ≤ j)], [CSIMPSEQ : 0 ≤ i ⊦ i→n(i) ≤ ((* m)) ↔ i ≤ n→i(m)], [CSIMPSEQ : ⊦ 0 < i → (i * j ≤ 0 ↔ j ≤ 0)], [CSIMPSEQ : ⊦ i + ((* j)) ≤ ((* j0)) ↔ i ≤ j0 - j], [CSIMPSEQ : ⊦ i ≤ (~1) ↔ i < 0], [CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs, r1, refs0)]]