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