| ∃ n. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n)))(H) ∧ n ≤ # xs + # ys ∧ n + # xs ≤ h ∧ h = h0 ∧ xs_len = xs_len0, # xs < h0, # xs = xs_len0, # ys = 0 ∨ # ys = h0 ⊦ ⟪tree_buffer_heap_add#(a, h; H, rxs, rys, xs_len, to_delete)⟫ ⟨caterpillar_add#(a, h0; xs, xs_len0, ys)⟩ ∃ n. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n)))(H) ∧ n ≤ # xs + # ys ∧ n + # xs ≤ h ∧ h = h0 ∧ xs_len = xs_len0 |
# xs = xs_len0, # xs < h0, ∃ n. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n)))(H) ∧ n ≤ # xs + # ys ∧ n + # xs ≤ h ∧ h = h0 ∧ xs_len = xs_len0, # ys = 0 ∨ # ys = h0 ⊦ ⟪tree_buffer_heap_add#(a, h; H, rxs, rys, xs_len, to_delete)⟫ ⟨caterpillar_add#(a, h0; xs, xs_len0, ys)⟩ ∃ n. ((ls(rxs, xs) * ls(rys, ys) * del-list(to_delete, n)))(H) ∧ n ≤ # xs + # ys ∧ n + # xs ≤ h ∧ h = h0 ∧ xs_len = xs_len0