| is_referencevalue(val) ⊦ sk = _type, (val .refval = jvmref ∨ val .refval ∈ st[r0 -- sk, val0]) ∧ (val .refval ≠ jvmref → val .refval -- _type ∈ st[r0 -- sk, val0] ∧ st[val .refval -- _type] = typeval(mkclasstype(class1))) ↔ (val .refval = jvmref ∨ val .refval ∈ st) ∧ (val .refval ≠ jvmref → val .refval -- _type ∈ st ∧ st[val .refval -- _type] = typeval(mkclasstype(class1))) |
val = refval(r), is_referencevalue(val) ⊦ sk = _type, (r = jvmref ∨ r ∈ st[r0 -- sk, val0]) ∧ (r ≠ jvmref → r -- _type ∈ st[r0 -- sk, val0] ∧ st[r -- _type] = typeval(mkclasstype(class1))) ↔ (r = jvmref ∨ r ∈ st) ∧ (r ≠ jvmref → r -- _type ∈ st ∧ st[r -- _type] = typeval(mkclasstype(class1)))
[[CONCRETESIMPRULES : ([CSIMPELIM : is_referencevalue(val) ⊦ r = val .refval ↔ val = refval(r)])], [EXTRATERMS : (val, r)]]