| # ints > 1 ∧ ints .first ≥ 1 + 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, addarraymultlist (r, 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 .first - 1) + ints .rest, ints0, i), restn(i→n(countrefs2((ints .first - 1) + ints .rest)), refs .rest), ints .rest, ints0 .rest, i) [_mode ] ) = st[_mode], ints ≠ [] ∧ ¬ 0 < ints .first |
2 ≤ ints .first, 0 ≤ ints .first, 0 < ints .first, ∀ 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, addarraymultlist (r, 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 .first - 1) ' + ints .rest, ints0, i), restn(i→n(countrefs2((ints .first - 1) ' + ints .rest)), refs .rest), ints .rest, ints0 .rest, i) [_mode ] ) = st[_mode], ints = []
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i ≥ j ↔ ¬ i < j], [CSIMPSEQ : ⊦ # ints = 0 ↔ ints = []], [CSIMPSEQ : ⊦ 1 < m ↔ ¬ (m = 0 ∨ m = 1)], [CSIMPSEQ : ⊦ m > n ↔ n < m], [CSIMPSEQ : ⊦ i + ints = i ' + ints])]]