| mkfs(class, ty, fieldvar) ' ∈ statfields(class0), tdname∃(str, class0), initdone(class0, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)]), compatrefs(str, st), compatmode(str, st) ⊦ `java.lang.Object' .class = class0, initdone(class0, st), jvmref -- mkfs(class, ty, fieldvar) ' ∈ st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)] ∧ compat (str, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)][jvmref -- mkfs(class, ty, fieldvar) '], ty, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)]) |
mkfs(class, ty, fieldvar) ' ∈ statfields(class0), tdname∃(str, class0), initdone(class0, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)]), compatrefs(str, st), compatmode(str, st) ⊦ `java.lang.Object' .class = class0, initdone(class0, st), (class = `java.lang.Object' .class ∧ ty = void_type ∧ fieldvar = `initstate' .field ∨ jvmref -- mkfs(class, ty, fieldvar) ' ∈ st) ∧ compat (str, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)][jvmref -- mkfs(class, ty, fieldvar) '], ty, st[jvmref -- mkfs(`java.lang.Object' .class, void_type, `initstate' .field) ', initval(done)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkfs(class1, ty, fieldvar) = mkfs(class2, ty0, fieldvar0) ↔ ¬ ¬ ( class1 = class2 ∧ ty = ty0 ∧ fieldvar = fieldvar0)], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st])]]