| fis .keys = statfields(class), okfieldinits(class, fis), compatrefs(str, st), compatstatic(str, st), compatmode(str, st) ⊦ ∀ r. r ≠ jvmref ∧ r -- _type ∈ addclass(class, fis, st) ∧ is_typevalue(addclass(class, fis, st)[r -- _type]) → ( is_classtype((addclass(class, fis, st)[r -- _type]) .type) ∧ class+∃(str, (addclass(class, fis, st)[r -- _type]) .type .class) → compatobj(str, r, addclass(class, fis, st))) ∧ ( is_arraytype((addclass(class, fis, st)[r -- _type]) .type) ∧ ( ¬ has_classtype((addclass(class, fis, st)[r -- _type]) .type) ∨ tdname+∃(str, (addclass(class, fis, st)[r -- _type]) .type .jtelemtype .class)) → compatarray(str, r, addclass(class, fis, st))) |
fis .keys = statfields(class), is_typevalue(st[r -- _type]), r -- _type ∈ addclass(class, fis, st), compatmode(str, st), compatstatic(str, st), compatrefs(str, st), okfieldinits(class, fis), r ∈ st ⊦ r = jvmref, (is_classtype(st[r -- _type] .type) ∧ class+∃(str, st[r -- _type] .type .class) → compatobj(str, r, addclass(class, fis, st))) ∧ ( is_arraytype(st[r -- _type] .type) ∧ (¬ has_classtype(st[r -- _type] .type) ∨ tdname+∃(str, st[r -- _type] .type .type .jtelemtype .class)) → compatarray(str, r, addclass(class, fis, st)))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ jvmref → ( r ∈ addclass(class1, fis, st) ↔ r ∈ st)], [CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ is_arraytype(ty) → ty .jtelemtype = ty .type .jtelemtype], [CSIMPSEQ : r ≠ jvmref ⊦ (addclass(class1, fis, st) [r -- sk ] ) = st[r -- sk]])]]