| newref_list(i→n(countrefs(ints)), st) = r ' + refs, 0 ≤ i, posints(ints), class ∈ claset, jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] = initval(undone) ∨ ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ addarrays(r ' + refs, ty, ints, i, st) ∨ (addarrays(r ' + refs, ty, ints, i, st)[jvmref -- mkfs(class, void_type, `initstate' .field) ']) ≠ initval(undone) ⊦ claset = ∅, ints = [], # claset = 0, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ addarrays(r ' + refs, ty, ints, i, st) ∧ _uninit ∈ addarrays(r ' + refs, ty, ints, i, st) |
⊦ ¬ r ∈ refs → (r -- sk ∈ addarrays(refs, ty, ints, i, st) ↔ r -- sk ∈ st)
¬ jvmref ∈ r ' + refs, newref_list(i→n(countrefs(ints)), st) = r ' + refs, 0 ≤ i, posints(ints), class ∈ claset, jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] = initval(undone) ∨ ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∨ (addarrays(r ' + refs, ty, ints, i, st)[jvmref -- mkfs(class, void_type, `initstate' .field) ']) ≠ initval(undone) ⊦ claset = ∅, ints = [], # claset = 0, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ addarrays(r ' + refs, ty, ints, i, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ jvmref ∈ refs → newref_list(n, st) ≠ refs])], [EXTRATERMS : (st, i, ints, ty, r ' + refs, mkfs(class, void_type, `initstate' .field) ', jvmref)]]