| s ≠ ∅, bst(t), s = t.set, ((tr(r, t) * P))(H) ⊦ ⟪search_tree_delete_min(; a, r, H)⟫ ⟨ordered_set_delete_min(; b, s)⟩ ⟨t := t.butleftmost⟩ (s = t.set ∧ a = b ∧ ((tr(r, t) * P))(H) ∧ bst(t)) |
# t.set ≠ 0, t.set ≠ ∅, ((tr(r, t) * P))(H), bst(t) ⊦ ⟪search_tree_delete_min(; a, r, H)⟫ ⟨s := t.set; ordered_set_delete_min(; b, s)⟩ ⟨t := t.butleftmost⟩ (s = t.set ∧ a = b ∧ ((tr(r, t) * P))(H) ∧ bst(t))
[Concretesimprules((Csimpnamedforward(set-basic,,size-zero, ⊦ # s ≠ 0 → s ≠ ∅) Csimpnamedforward(set-basic,,size-zero-01, ⊦ s ≠ ∅ → # s ≠ 0)))]