| ⊦ r = r1, r ≠ jvmref ∧ (r -- _type) × typeval(mkclasstype(class)) ∈ putByteArray(bytes, r1, i, st) ∧ goodfieldsandtypes(r, sk ', putByteArray(bytes, r1, i, st)) ↔ is_obj(r, class, sk ', st) |
⊦ r = r1, r ≠ jvmref ∧ r -- _type ∈ st ∧ st[r -- _type] = typeval(mkclasstype(class)) ∧ goodfieldandtype(r, sk, st) ↔ is_obj(r, class, sk ', st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ r1 → ( goodfieldandtype (r, sk, putByteArray (bytes, r1, i, st)) ↔ goodfieldandtype(r, sk, st))], [CSIMPSEQ : ⊦ goodfieldsandtypes(r, sk ', st) ↔ goodfieldandtype(r, sk, st)], [CSIMPSEQ : ⊦ (putByteArray(bytes, r, i, st) [r0 -- _type ] ) = st[r0 -- _type]], [CSIMPSEQ : ⊦ r ≠ r0 → ( r0 -- sk ∈ putByteArray (bytes, r, j, st) ↔ r0 -- sk ∈ st)], [CSIMPSEQ : ⊦ rk × val ∈ st ↔ rk ∈ st ∧ st[rk] = val])]]