| ⊦ validref(str, r, mkarraytype(ty), addarray(r, ty, i, st)) ↔ r = jvmref ∨ ¬ i < 0 ∧ type∃(str, ty) ∧ ty .jtelemtype ≠ abstract_type ∧ ty .jtelemtype ≠ void_type |
⊦ validref(str, r, ty, st) ↔ r = jvmref ∨ st[r -- _type] .type ≤ ty ∧ ¬ junkref(str, r, st)
⊦ r = jvmref ∨ (addarray(r, ty, i, st)[r -- _type]) .type ≤ mkarraytype(ty) ∧ ¬ junkref(str, r, addarray(r, ty, i, st)) ↔ r = jvmref ∨ ¬ i < 0 ∧ type∃(str, ty) ∧ ty .jtelemtype ≠ abstract_type ∧ ty .jtelemtype ≠ void_type
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addarray(r, ty, i, st), mkarraytype(ty), r, str)]]