| st[r -- _type] = typeval(mkclasstype(class0)), fis .keys = statfields(class), class+∃(str, class0), compatmode(str, st), compatstatic(str, st), okfieldinits(class, fis), r -- _type ∈ st, r ∈ st, compatobj(str, r, st) ⊦ r = jvmref, compatobj(str, r, addclass(class, fis, st)) |
⊦ compatobj(str, r, st) ↔ is_classtype(st[r -- _type] .type) ∧ class+∃(str, st[r -- _type] .type .class) ∧ compatfields(str, r, instfields(st[r -- _type] .type .class), st)
st[r -- _type] = typeval(mkclasstype(class0)), fis .keys = statfields(class), class+∃(str, class0), compatmode(str, st), compatstatic(str, st), okfieldinits(class, fis), r -- _type ∈ st, r ∈ st, compatobj(str, r, st) ⊦ r = jvmref, is_classtype((addclass(class, fis, st)[r -- _type]) .type) ∧ class+∃(str, (addclass(class, fis, st)[r -- _type]) .type .class) ∧ compatfields(str, r, instfields((addclass(class, fis, st)[r -- _type]) .type .class), addclass(class, fis, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addclass(class, fis, st), r, str)]]