| s.min < a, s.min ∈ s, s.max ∈ s ⊦ # s = 0, (s ++ a) -- (s ++ a).min = (s -- s.min) ++ a, s = ∅ |
⊦ a ∈ s ∧ ¬ b < a → (s ++ b).min = s.min
s.min < a, s.max ∈ s, s.min ∈ s ⊦ # s = 0, (s ++ a) -- s.min = (s -- s.min) ++ a, s = ∅, a < s.min
Used simplifier rules: min-insert: ⊦ a < s.min ∧ s ≠ ∅ → (s ++ a).min = a;% ⊦ (s ++ a) -- a = s -- a; (s)% ⊦ s -- a ≠ s0 ++ a; (s)%transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem% ⊦ ¬ a < a; (s) Used terms: s.min, s, a