| newref_list(1 + # refs, st) = r ' + refs, 1 + # refs = i→n(countrefs(ints)), 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 ∈ addarrays(r ' + refs, ty, ints, i, st) ⊦ claset = ∅, # claset = 0, ints = [], jvmref = r, initundone(class, st), jvmref ∈ refs |
⊦ initundone(class1, st) ↔ (jvmref -- mkfs(class1, void_type, `initstate' .field) ') × initval(undone) ∈ st ∨ ¬ jvmref -- mkfs(class1, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st
newref_list(1 + # refs, st) = r ' + refs, 1 + # refs = i→n(countrefs(ints)), 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 ∈ addarrays(r ' + refs, ty, ints, i, st) ⊦ claset = ∅, # claset = 0, ints = [], jvmref = r, (jvmref -- mkfs(class, void_type, `initstate' .field) ') × initval(undone) ∈ st ∨ ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st, jvmref ∈ refs
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, class)]]