| ¬ a0 ≠ st.min ⊦ a0 = a, a = st[a, d].min, a0 = st[a, d].min, (a0 ∈ st ↔ a0 ∈ st -- st.min) ∧ st[a0] = (st -- st.min)[a0] |
st.min ∈ st ⊦ st.min = st[a, d].min, a = st[a, d].min, st.min = a
Used simplifier rules: Min-min: ⊦ a ∈ st → ¬ a < st.min;%inf: ⊦ a ∈ st → a ∈ st.keys;%Keys: ⊦ a ∈ st.keys ↔ a ∈ st;%irreflexivity: ⊦ ¬ a < a; from specification oelem%notmemlookup: ⊦ ¬ a ∈ st → st[a] = (∅)[a]; from specification store%notin-del-notin: ⊦ ¬ a ∈ st → st -- a = st; from specification store%Del-in: ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; from specification store