| a0 = st.min ⊦ a = st[a, d].min, a0 = a, a0 = st[a, d].min, (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st[a0] = (st -- st.min)[a0] |
st.min ∈ st ⊦ st.min = a, st.min = st[a, d].min, a = st[a, d].min
Used simplifier rules: Min-min: ⊦ a ∈ st → ¬ a < st.min;%inf: ⊦ a ∈ st → a ∈ st.keys;%Keys: ⊦ a ∈ st.keys ↔ a ∈ st;% ⊦ ¬ a < a; (s)% ⊦ ¬ a ∈ st → st[a] = (∅)[a]; (s)% ⊦ ¬ a ∈ st → st -- a = st; (s)% ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (ws)