| ⊦ r ≠ rk .ref → (is_obj(r, class, sks, st[rk, refval(r)]) ↔ is_obj(r, class, sks, st)) |
⊦ is_obj(r, class, sks, st) ↔ r ≠ jvmref ∧ (r -- _type) × typeval(mkclasstype(class)) ∈ st ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st))
⊦ r ≠ rk .ref → ( r ≠ jvmref ∧ (r -- _type) × typeval(mkclasstype(class)) ∈ st[rk, refval(r)] ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st[rk, refval(r)])) ↔ is_obj(r, class, sks, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st[rk, refval(r)], sks, class, r)]]