| ((del-list(to_delete, n) * P))(H) ⊦ ⟪tree_buffer_heap_process_one#(; H, to_delete)⟫ ((1 ≤ n → ((del-list(to_delete, n - 1) * P))(H)) ∧ (n = 0 → to_delete = [] ∧ P(H))) |
((del-list(to_delete, n) * P))(H) ⊦ ⟪if to_delete ≠ [] then let r = to_delete.head in {to_delete := to_delete.tail; if H[r].nxt ≠ null then to_delete := H[r].nxt + to_delete; H := H -- r}⟫ ((1 ≤ n → ((del-list(to_delete, n - 1) * P))(H)) ∧ (n = 0 → to_delete = [] ∧ P(H)))
Used simplifier rules: tree_buffer_heap_process_one#(; H, to_delete) {if to_delete ≠ [] then let r = to_delete.head in {to_delete := to_delete.tail; if H[r].nxt ≠ null then to_delete := H[r].nxt + to_delete; H := H -- r} };