| n→i(# refs) = countrefs(i0 ' + ints0), getdims(i0 ' + ints0) = i1 ' + ints, posints(ints0), 0 ≤ i0 ⊦ (addmultiarrays(refs, i0, [], mktype_from_dims(ty, countdims(i0 ' + ints0, i)), i1 ' + ints, st)[_out]) = st[_out], mkfs(`java.lang.Object' .class, void_type, `out' .field) ' = _length, mkfs(`java.lang.Object' .class, void_type, `out' .field) ' = _type, ¬ i1 < i0 ∧ ¬ 0 ∈ (i1 ' + ints) .butlast ∧ # refs = i→n(countrefs(i0 ' + ints)) |
⊦ 0 < j → getdims(j ' + ints) = j ' + getdims(ints)
⊦ j ≤ 0 → getdims(j ' + ints) = 0 '
⊦ countrefs(0 ' + ints) = 1
⊦ j ≤ 0 → countdims(j ' + ints, i) = i + n→i(# ints)
⊦ 0 < j → countdims(j ' + ints, i) = countdims(ints, i)
⊦ countrefs(i ' + getdims(ints)) = countrefs(i ' + ints)
⊦ 0 < i → ¬ 0 ∈ (i ' + getdims(ints)) .butlast
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i→n(n→i(n)) = n], [CSIMPSEQ : ⊦ i ≤ i], [CSIMPSEQ : ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 < i → 0 < j], [CSIMPSEQ : ⊦ ¬ i < i], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i ' + ints = i0 ' + ints0 ↔ i = i0 ∧ ints = ints0], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i ≤ j → (j ≤ i ↔ i = j)], [CSIMPSEQ : ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1], [CSIMPSEQ : ⊦ i ' = i0 ' + ints ↔ i = i0 ∧ ints = []], [CSIMPSEQ : 0 ≤ i ⊦ n→i(n) = ((* i)) ↔ n = i→n(i)], [CSIMPFORWARD : ⊦ i < i0 ∧ i = i1 → i1 < i0], [CSIMPFORWARD : ⊦ j < i ∧ i ≤ 0 → j < 0], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ ints + [] = ints], [CSIMPSEQ : ⊦ i ' ≠ []], [CSIMPFORWARD : ints ≠ [] ⊦ i ∈ ints .butlast → i ∈ ints], [CSIMPSEQ : ⊦ i ∈ i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ i ' .butlast = []], [CSIMPSEQ : ⊦ ¬ i ∈ []])], [EXTRATERMS : (ints0, i0)]]