| is_indexkey((sk × val0) .1), sk .fs = mkfs(class, ty0, fieldvar0), ∀ class1, st, ty, fieldvar, val. (addclass(class1, fis0, st)[jvmref -- mkfs(class1, ty, fieldvar) ', val]) = addclass(class1, fis0[mkfs(class1, ty, fieldvar) ', val], st) ⊦ (addclass(class1, fis0, st)[jvmref -- mkfs(class1, ty, fieldvar) ', val]) = addclass(class1, ((sk × val0) ' + fis0)[mkfs(class1, ty, fieldvar) ', val], st), ¬ is_indexkey(sk) ∧ class ≠ class1 |
⊦ is_indexkey(fv .1) → addclass(class, fv ' + fis, st) = addclass(class, fis, st)
sk .fs = mkfs(class, ty0, fieldvar0), is_indexkey(sk), ∀ class1, st, ty, fieldvar, val. (addclass(class1, fis0, st)[jvmref -- mkfs(class1, ty, fieldvar) ', val]) = addclass(class1, fis0[mkfs(class1, ty, fieldvar) ', val], st) ⊦ (addclass(class1, fis0, st)[jvmref -- mkfs(class1, ty, fieldvar) ', val]) = addclass(class1, fis0[mkfs(class1, ty, fieldvar) ', val], st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : sk0 ≠ sk ⊦ ((sk0 × val0) ' + fis)[sk, val] = (sk0 × val0) ' + fis[sk, val]], [CSIMPSEQ : ⊦ fs ' .fs = fs], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) = mkfs(class0, ty0, fieldvar0) ↔ class = class0 ∧ ty = ty0 ∧ fieldvar = fieldvar0], [CSIMPSEQ : ⊦ (sk × val) .1 = sk], [CSIMPSEQ : ⊦ ¬ is_indexkey(fs ')])]]