| ⊦ ( ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ addarrays(refs, ty, ints, i, st) ∨ (addarrays(refs, ty, ints, i, st)[jvmref -- mkfs(class, void_type, `initstate' .field) ']) ≠ initval(error)) ∧ ¬ initundone(class, addarrays(refs, ty, ints, i, st)) ↔ initdone(class, st) |
⊦ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type → (r -- sk ∈ addarrays(refs, ty, ints, i, st) ↔ r -- sk ∈ st)
is_fskey(mkfs(class, void_type, `initstate' .field) ') ∧ mkfs(class, void_type, `initstate' .field) ' ≠ _length ∧ mkfs(class, void_type, `initstate' .field) ' ≠ _type ⊦ ( ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∨ (addarrays(refs, ty, ints, i, st)[jvmref -- mkfs(class, void_type, `initstate' .field) ']) ≠ initval(error)) ∧ ¬ initundone(class, addarrays(refs, ty, ints, i, st)) ↔ initdone(class, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_fskey(fs ')], [CSIMPSEQ : ⊦ mkfs (class1, ty, `initstate' .field) ' ≠ _length], [CSIMPFORWARD : ⊦ _type = mkfs(class1, ty, fieldvar) ' → class1 = `java.lang.Object' .class ∧ ty = void_type ∧ fieldvar = `type' .field], [CSIMPSEQ : ⊦ stringvar .field = stringvar0 .field ↔ stringvar = stringvar0])], [EXTRATERMS : (st, i, ints, ty, refs, mkfs(class, void_type, `initstate' .field) ', jvmref)]]