| st.keys.min ∈ st.keys ∧ ¬ a < st.keys.min ⊦ # st.keys = 0, st.keys = ∅, a = st.keys.min, st.keys.min = st.min, a < st.keys.min |
st.keys.min < a, st.keys.min ∈ st, st.min < st.keys.min, st.min < a ⊦ st.keys.min = st.min, a = st.keys.min, # st.keys = 0
Used simplifier rules: notempty: ⊦ a ∈ st.keys → st.keys ≠ ∅;%Keys: ⊦ a ∈ st.keys ↔ a ∈ st;%Min-min: ⊦ a ∈ st → ¬ a < st.min;%inf: ⊦ a ∈ st → a ∈ st.keys;%transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem%sls: ⊦ a ≠ b → (¬ a < b ↔ b < a); from specification oelem