| junkref(str, r, addarray(r, ty, i, st)), type∃(str, ty), 0 ≤ i ⊦ ty .jtelemtype = void_type, ty .jtelemtype = abstract_type, r = jvmref |
⊦ is_array(str, r, st) → ( junkref(str, r, st) ↔ (∃ i. 0 ≤ i ∧ i < st[r -- _length] .intval ∧ is_referencevalue(st[r -- i ']) ∧ st[r -- i '] .refval ≠ jvmref ∧ (¬ st[st[r -- i '] .refval -- _type] .type ≤ st[r -- _type] .type .type ∨ junkref(str, st[r -- i '] .refval, st))))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ is_array (str, r, addarray(r, ty, i, st)) ↔ ¬ ¬ ( type∃(str, ty) ∧ 0 ≤ i ∧ r ≠ jvmref ∧ ty .jtelemtype ≠ void_type ∧ ty .jtelemtype ≠ abstract_type)], [CSIMPSEQ : ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j], [CSIMPSEQ : ⊦ (addarray(r, ty, i, st) [r -- _length ] ) = intval(i)], [CSIMPSEQ : ⊦ intval(i) .intval = i], [CSIMPSEQ : ⊦ 0 ≤ j ∧ j < i → (addarray(r, ty, i, st) [r -- j ' ] ) = initial_value(ty)], [CSIMPSEQ : ⊦ is_referencevalue (initial_value(ty)) → initial_value(ty) = refval(jvmref)], [CSIMPSEQ : ⊦ refval(r) .refval = r])], [EXTRATERMS : (addarray(r, ty, i, st), r, str)]]