| is_array(str, r, addarray(r, mkclasstype(class), vals, st)), n < # vals ⊦ vals = [], is_referencevalue(vals[n]) |
⊦ ¬ is_referencevalue(st[r -- i ']) ∧ is_reftype(st[r -- _type] .type .type) ∧ 0 ≤ i ∧ i < st[r -- _length] .intval → ¬ is_array(str, r, st)
¬ ( ¬ is_referencevalue(addarray(r, mkclasstype(class), vals, st)[r -- n→i(n) ']) ∧ is_reftype((addarray(r, mkclasstype(class), vals, st)[r -- _type]) .type .type) ∧ 0 ≤ n→i(n) ∧ n→i(n) < (addarray(r, mkclasstype(class), vals, st)[r -- _length]) .intval), is_array(str, r, addarray(r, mkclasstype(class), vals, st)), n < # vals ⊦ vals = [], is_referencevalue(vals[n])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addarray(r, mkclasstype(class), vals, st), r, n→i(n), str)]]