| s.min < a ⊦ (s ++ a).butmin = s.butmin ++ a, s = ∅ |
s.min < a, s.min ∈ s, s.max ∈ s ⊦ # s = 0, (s ++ a).butmin = (s -- s.min) ++ a, s = ∅
Used simplifier rules: Butmin: ⊦ s ≠ ∅ → s.butmin = s -- s.min;%Max-in: ⊦ s ≠ ∅ → s.max ∈ s;%Min-in: ⊦ s ≠ ∅ → s.min ∈ s;%Max-max: ⊦ a ∈ s → ¬ s.max < a;%Min-min: ⊦ a ∈ s → ¬ a < s.min;%minmax-04: ⊦ s ≠ ∅ → ¬ s.max < s.min;% ⊦ ¬ a < a; (s)%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic%size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic