| s ∩ s0 = ∅ ⊦ s = ∅, s.butmin ∩ s0 = ∅ |
s ∩ s0 = ∅, ((s -- s.min) ∩ s0).min ∈ s, ((s -- s.min) ∩ s0).max ∈ s0, ((s -- s.min) ∩ s0).max ∈ s, s.min ∈ s, s.max ∈ s, ((s -- s.min) ∩ s0).min ∈ s0, s0.min ∈ s0, s0.max ∈ s0 ⊦ # s = 0, #((s -- s.min) ∩ s0) = 0, # s0 = 0, ((s -- s.min) ∩ s0).max = s.min, ((s -- s.min) ∩ s0).min = s.min, s = ∅, s0 = ∅, (s -- s.min) ∩ s0 = ∅, ((s -- s.min) ∩ s0).min < s0.min, s0.max < ((s -- s.min) ∩ s0).min, s.max < ((s -- s.min) ∩ s0).max, ((s -- s.min) ∩ s0).max < s0.min, s0.max < ((s -- s.min) ∩ s0).max, s.max < ((s -- s.min) ∩ s0).min, s.max < s0.min
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;%min-less: ⊦ a ≠ s.min ∧ a ∈ s → s.min < a;%nnn: ⊦ ¬ c < b ∧ ¬ a < c → ¬ a < b; (forward) from specification oelem% ⊦ a ≠ b → (a < b ↔ ¬ b < a); (ss)% ⊦ ¬ a < a; (s)%size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic% ⊦ a ∈ s -- b ↔ a ≠ b ∧ a ∈ s; (ws)%int-c: ⊦ s ∩ s0 = s0 ∩ s; from specification set-union%int-a: ⊦ (s ∩ s0) ∩ s1 = s ∩ s0 ∩ s1; from specification set-union% ⊦ a ∈ s1 ∩ s2 ↔ a ∈ s1 ∧ a ∈ s2; (ws)%size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic