| st0[r0 -- _length] = intval(i0), st[r0 -- _type] .type = mkarraytype(ty), okarray(r0, ty, st), type∃(str, ty), r0 ∈ st, 0 ≤ i0, st ⊆ st0, validref(str, r0, mkarraytype(ty0), st), 0 ≤ i, i < i0, ty ≤ ty0, r0 -- _type ∈ st, is_typevalue(st[r0 -- _type]) ⊦ ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, r0 = jvmref, noval .refval ∈ acc, r0 -- i ' ∈ st, ¬ r2 ∈ acc ∧ r2 ≠ r1, r1 ≠ r2 ∧ ¬ r1 ∈ refs |
st[r0 -- _type] = typeval(ty1), st0[r0 -- _length] = intval(i0), ty1 = mkarraytype(ty), okarray(r0, ty, st), type∃(str, ty), r0 ∈ st, 0 ≤ i0, st ⊆ st0, validref(str, r0, mkarraytype(ty0), st), 0 ≤ i, i < i0, ty ≤ ty0, r0 -- _type ∈ st, is_typevalue(st[r0 -- _type]) ⊦ ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, r0 = jvmref, noval .refval ∈ acc, r0 -- i ' ∈ st, ¬ r2 ∈ acc ∧ r2 ≠ r1, r1 ≠ r2 ∧ ¬ r1 ∈ refs
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_typevalue(val) → ( ty = val .type ↔ val = typeval(ty))])], [EXTRATERMS : (st[r0 -- _type], ty1)]]