| st[r0 -- _type] .type ≤ ty, is_arraytype(st[r0 -- _type] .type) ⊦ ty = mkclasstype(`java.lang.Object' .class), is_valid_ref(r0, putByteArray(bytes, r, i, st)) ∧ is_array(str, r0, putByteArray(bytes, r, i, st)) ↔ is_array(str, r0, st), is_arraytype(ty) |
⊦ is_arraytype(ty) ↔ (∃ ty0. ty = mkarraytype(ty0))
st[r0 -- _type] .type ≤ ty, ∃ ty0. st[r0 -- _type] .type = mkarraytype(ty0) ⊦ ty = mkclasstype(`java.lang.Object' .class), is_valid_ref(r0, putByteArray(bytes, r, i, st)) ∧ is_array(str, r0, putByteArray(bytes, r, i, st)) ↔ is_array(str, r0, st), is_arraytype(ty)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st[r0 -- _type] .type)]]