| ⊦ r ∈ h \ rs → (#(h \ rs) ≤ #((h -- r) \ rs) ↔ false) |
¬(#(h \ rs) ≤ #((h -- r) \ rs) ↔ false), r ∈ h \ rs ⊦
| ¬(#(h \ rs) ≤ #((h -- r) \ rs) ↔ false), r ∈ h \ rs ⊦ |
¬(#(h \ (rs0 ++ r0)) ≤ #((h -- r) \ (rs0 ++ r0)) ↔ false), r ∈ h \ (rs0 ++ r0), ∀ h, r. ¬(¬(#(h \ rs0) ≤ #((h -- r) \ rs0) ↔ false) ∧ r ∈ h \ rs0) ⊦
Used simplifier rules: diffs-emp: ⊦ h0 \ ∅ = h0; Set[A] generated by ∅, ++; ⊦ a ∈ st → #(st -- a) = (# st).-1; (s) ⊦ n.-1 = n - 1; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ m < 1 ↔ m = 0; (s) ⊦ # st = 0 ↔ st = ∅; (s) ⊦ ¬ a ∈ ∅; (s) n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n; (s) ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ ¬ n < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic
| ¬(#(h \ (rs0 ++ r0)) ≤ #((h -- r) \ (rs0 ++ r0)) ↔ false), r ∈ h \ (rs0 ++ r0), ∀ h, r. ¬(¬(#(h \ rs0) ≤ #((h -- r) \ rs0) ↔ false) ∧ r ∈ h \ rs0) ⊦ |
r ≠ r0, #((h -- r0) \ rs0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: diffs-ins: ⊦ h0 \ (rs ++ r) = (h0 -- r) \ rs; in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)
| r ≠ r0, #((h -- r0) \ rs0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
⊦ (h -- r) \ rs = (h \ rs) -- r
r ≠ r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used terms: h, r0, rs0
| ⊦ (h -- r) \ rs = (h \ rs) -- r |
| r ≠ r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
r ≠ r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
| r ≠ r0, #((h \ rs0) -- r0) ≤ #((h -- r -- r0) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
⊦ (h -- r) \ rs = (h \ rs) -- r
r ≠ r0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used terms: h -- r, r0, rs0
| ⊦ (h -- r) \ rs = (h \ rs) -- r |
| r ≠ r0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
⊦ r ∈ h → #(h -- r) = # h - 1
r ≠ r0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ h \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
r ≠ r0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used terms: h \ rs0, r0
| ⊦ r ∈ h → #(h -- r) = # h - 1 |
| r ≠ r0, #((h \ rs0) -- r0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ h \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
r ≠ r0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ ¬ a ∈ st → st -- a = st; (s)
| r ≠ r0, #(h \ rs0) ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
⊦ ¬ a ∈ st → st -- a = st
r ≠ r0, #(h \ rs0) ≤ #((h -- r) \ rs0), r ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s) Used terms: (h -- r) \ rs0, r0
| ⊦ ¬ a ∈ st → st -- a = st |
| r ≠ r0, #(h \ rs0) ≤ #((h -- r) \ rs0), r ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ (h -- r) \ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
r ≠ r0, #(h \ rs0) ≤ #((h -- r) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)
| r ≠ r0, #(h \ rs0) ≤ #((h -- r) \ rs0), r ∈ h, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ r0 ∈ h ∧ ¬ r0 ∈ rs0 |
Used terms: h, r
| r ≠ r0, #(h \ rs0) - 1 ≤ #(((h -- r) \ rs0) -- r0), r ∈ h, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
⊦ r ∈ h → #(h -- r) = # h - 1
r ≠ r0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ ¬ a ∈ st → st -- a = st; (s) ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s) Used terms: (h -- r) \ rs0, r0
| ⊦ r ∈ h → #(h -- r) = # h - 1 |
| r ≠ r0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h \ rs0, r0 ∈ (h -- r) \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
#(h \ rs0) = 0, r ≠ r0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ (h -- r) \ rs0, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
#(h \ rs0) = n0 + 1, #(h \ rs0) ≠ 0, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ (h -- r) \ rs0, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: #(h \ rs0), n0
| #(h \ rs0) = 0, r ≠ r0, #(h \ rs0) - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ (h -- r) \ rs0, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
h \ rs0 = ∅, r ≠ r0, 0 - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ # ∅ = 0; (s) ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s) ⊦ # st = 0 ↔ st = ∅; (s)
| h \ rs0 = ∅, r ≠ r0, 0 - 1 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ # ∅ = 0; (s) Used terms: h, r
| #(h \ rs0) = n0 + 1, #(h \ rs0) ≠ 0, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ (h -- r) \ rs0, r0 ∈ h \ rs0, ¬ r ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
#(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: in-diffs: ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs; ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s) ⊦ # st = 0 ↔ st = ∅; (s)
| #(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
#((h -- r) \ rs0) = 0, #(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
#(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, #((h -- r) \ rs0) ≠ 0, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ n1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: #((h -- r) \ rs0), n1
| #((h -- r) \ rs0) = 0, #(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ #((h -- r) \ rs0) - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
#(h \ rs0) = n0 + 1, (h -- r) \ rs0 = ∅, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ 0 - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: ⊦ # ∅ = 0; (s) ⊦ # st = 0 ↔ st = ∅; (s)
| #(h \ rs0) = n0 + 1, (h -- r) \ rs0 = ∅, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ 0 - 1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
Used simplifier rules: ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s) ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic ⊦ # ∅ = 0; (s) Used terms: h -- r, r0
| #(h \ rs0) = n0 + 1, #((h -- r) \ rs0) = n1 + 1, #((h -- r) \ rs0) ≠ 0, h \ rs0 ≠ ∅, r ≠ r0, n0 ≤ n1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
#((h -- r) \ rs0) = n1 + 1, #(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, (h -- r) \ rs0 ≠ ∅, r ≠ r0, n0 ≤ n1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦
Used simplifier rules: ⊦ # st = 0 ↔ st = ∅; (s)
| #((h -- r) \ rs0) = n1 + 1, #(h \ rs0) = n0 + 1, h \ rs0 ≠ ∅, (h -- r) \ rs0 ≠ ∅, r ≠ r0, n0 ≤ n1, r ∈ h, r0 ∈ h, ¬ r ∈ rs0, ¬ r0 ∈ rs0, ∀ h0, r1. ¬ #(h0 \ rs0) ≤ #((h0 -- r1) \ rs0) ∨ ¬ r1 ∈ h0 ∨ r1 ∈ rs0 ⊦ |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic ⊦ m + 1 ≠ 0; (s) ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m ≤ m0 ∧ n ≤ n0 → ¬ m0 + n0 < m + n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used terms: h, r
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.