| _out ≠ jvmref -- mkfs(class1, ty, fieldvar) ', ∀ class1, st, val. class1 = `java.lang.Object' .class ∨ addclass(class1, fis0, st[_out, val]) = (addclass(class1, fis0, st)[_out, val]) ⊦ class1 = `java.lang.Object' .class, (addclass(class1, fis0, st[_out, val])[jvmref -- mkfs(class1, ty, fieldvar) ', val0]) = (addclass(class1, fis0, st)[_out, val][jvmref -- mkfs(class1, ty, fieldvar) ', val0]) |
∀ class1, st, val. class1 = `java.lang.Object' .class ∨ addclass(class1, fis0, st[_out, val]) = (addclass(class1, fis0, st)[_out, val]) ⊦ class1 = `java.lang.Object' .class, (addclass(class1, fis0, st[_out, val])[jvmref -- mkfs(class1, ty, fieldvar) ', val0]) = (addclass(class1, fis0, st)[jvmref -- mkfs(class1, ty, fieldvar) ', val0][_out, val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkfs(class1, ty, fieldvar) = mkfs(class2, ty0, fieldvar0) ↔ ¬ ¬ ( class1 = class2 ∧ ty = ty0 ∧ fieldvar = fieldvar0)], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ _out = jvmref -- sk ↔ sk = mkfs (`java.lang.Object' .class, void_type, `out' .field) '], [CSIMPSEQ : class1 ≠ `java.lang.Object' .class ⊦ (st[_out, val] [ jvmref -- mkfs(class1, ty, fieldvar) ', val0 ] ) = (st[ jvmref -- mkfs(class1, ty, fieldvar) ', val0] [_out, val ] )])]]