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