| is_predefined_class(class), class ≤ `java.lang.Throwable' .class, newref(r, st) ⊦ r = jvmref, validmode(str, addobj(r, class, [], st)[_mode, throw(r, mkclasstype(class))]) |
⊦ validmode(str, st) ↔ _mode ∈ st ∧ validmode(str, st[_mode], st)
is_predefined_class(class), class ≤ `java.lang.Throwable' .class, newref(r, st) ⊦ r = jvmref, _mode ∈ (addobj(r, class, [], st)[_mode, throw(r, mkclasstype(class))]) ∧ validmode(str, addobj(r, class, [], st)[_mode, throw(r, mkclasstype(class))][_mode], addobj(r, class, [], st)[_mode, throw(r, mkclasstype(class))])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addobj(r, class, [], st) [_mode, throw(r, mkclasstype(class)) ], str)]]