| n2 = # x0, r0 = rys, xs = x0, (((lls(rxs, null, x0) * ls(rys, ys)) * del-list(to_delete, n0)))(H), ((ls(rxs, x0) * ls(rys, ys) * del-list(to_delete, n0)))(H), n < h0, # x0 < h0, n0 ≤ # x0 + # ys, n0 + # x0 ≤ h0, ∃ x1, y1. ( x = xs + x1 ∧ ys = x1 + y1 ∧ ((ls(rxs, xs) * lls(rys, r, x1) * ls(r, y1) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ n ≤ h0 ∧ n = # x) ∧ n = n1, ys = [] ∨ # ys = h0 ⊦ ⟪r0 := H[r].nxt; n := n + 1⟫ ∃ x1, y1. ( x + H[r].val ' = xs + x1 ∧ ys = x1 + y1 ∧ ((ls(rxs, xs) * lls(rys, r0, x1) * ls(r0, y1) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ n ≤ h0 ∧ n = #(x + H[r].val ')) ∧ h0 - n < h0 - n1, r = null |
n2 = # x0, r0 = rys, xs = x0, ((ls(rxs, x0) * ls(rys, ys) * del-list(to_delete, n0)))(H), (((lls(rxs, null, x0) * ls(rys, ys)) * del-list(to_delete, n0)))(H), # x0 < h0, n < h0, n0 + # x0 ≤ h0, n0 ≤ # x0 + # ys, ∃ x1, y1. ( x = xs + x1 ∧ ys = x1 + y1 ∧ ((ls(rxs, xs) * lls(rys, r, x1) * ls(r, y1) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ n ≤ h0 ∧ n = # x) ∧ n = n1, ys = [] ∨ # ys = h0 ⊦ ⟪n := n + 1⟫ ∃ x1, y1. ( x + H[r].val ' = xs + x1 ∧ ys = x1 + y1 ∧ ((ls(rxs, xs) * lls(rys, H[r].nxt, x1) * ls(H[r].nxt, y1) * del-list(to_delete, n0)))(H) ∧ n0 ≤ # xs + # ys ∧ n0 + # xs ≤ h0 ∧ n ≤ h0 ∧ n = #(x + H[r].val ')) ∧ h0 - n < h0 - n1, r = null