| i→n(j) < # vals, newref(r, st), class∃(str, class), junkrefs(str, r ' + refs0, mkarraytype(mkclasstype(class)), addarray(r, mkclasstype(class), vals, st)), tdname+∃(str, class), 0 ≤ j, ∀ val. val ∈ vals → ¬ junkref(str, val .refval, st) ∧ is_referencevalue(val) ∧ (val .refval ≠ jvmref → st[val .refval -- _type] .type ≤ mkclasstype(class)) ⊦ vals = [], r = jvmref, is_referencevalue(vals[i→n(j)]), ∃ n. ¬ # vals ≤ n ∧ vals[n] = vals[i→n(j)] |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m < n → (n ≤ m ↔ false)])], [EXTRATERMS : (i→n(j))]]