| newref(r, st) ⊦ r = jvmref, (st[r -- _type, typeval(mkclasstype(class1))][_mode, throw(r, mkclasstype(class1))]) =mode st |
⊦ st =mode st0 ↔ st = st0 ∨ (∃ r, class1. st = (st0[r -- _type, typeval(mkclasstype(class1))][_mode, throw(r, mkclasstype(class1))]) ∧ newref(r, st0))
newref(r, st) ⊦ r = jvmref, (st[r -- _type, typeval(mkclasstype(class1))][_mode, throw(r, mkclasstype(class1))]) = st ∨ (∃ r0, class. (st[r -- _type, typeval(mkclasstype(class1))][_mode, throw(r, mkclasstype(class1))]) = (st[r0 -- _type, typeval(mkclasstype(class))][_mode, throw(r0, mkclasstype(class))]) ∧ newref(r0, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, st[r -- _type, typeval(mkclasstype(class1))] [_mode, throw(r, mkclasstype(class1)) ])]]