| i < 0 ⊦ r0 ≠ jvmref ∧ r0 -- _type ∈ st[r -- i ', val] ∧ is_typevalue(st[r -- i ', val][r0 -- _type]) ∧ is_arraytype((st[r -- i ', val][r0 -- _type]) .type) ∧ okarray(r0, (st[r -- i ', val][r0 -- _type]) .type .type, st[r -- i ', val]) ↔ r0 ≠ jvmref ∧ r0 -- _type ∈ st ∧ is_typevalue(st[r0 -- _type]) ∧ is_arraytype(st[r0 -- _type] .type) ∧ okarray(r0, st[r0 -- _type] .type .type, st) |
i < 0, r0 -- _type ∈ st, is_typevalue(st[r0 -- _type]), is_arraytype(st[r0 -- _type] .type), r0 ∈ st ⊦ r0 = jvmref, okarray(r0, st[r0 -- _type] .type .type, st[r -- i ', val]) ↔ okarray(r0, st[r0 -- _type] .type .type, st)
[[CONCRETESIMPRULES : ([CSIMPNAMEDFORWARD : storefuns, , instore-01, ⊦ r -- sk ∈ st → r ∈ st], [CSIMPNAMEDSEQ : javastore, , type-at, ⊦ (st[r -- i ', val] [r0 -- _type ] ) = st[r0 -- _type]], [CSIMPNAMEDSEQ : javastore, , type, ⊦ r -- _type ∈ st[r0 -- i ', val0] ↔ r -- _type ∈ st])]]