| ⊦ a ∈ x → # (x + a ' + y).distinct = # (x + y).distinct |
# (x + a ' + y).distinct ≠ # (x + y).distinct, a ∈ x ⊦
| # (x + a ' + y).distinct ≠ # (x + y).distinct, a ∈ x ⊦ |
# (x + a ' + y).distinct ≠ # (x + y).distinct, a ∈ x ⊦
| # (x + a ' + y).distinct ≠ # (x + y).distinct, a ∈ x ⊦ |
# ((a0 + x0) + a ' + y).distinct ≠ # ((a0 + x0) + y).distinct, a ∈ a0 + x0, ∀ a, y. ¬(# (x0 + a ' + y).distinct ≠ # (x0 + y).distinct ∧ a ∈ x0) ⊦
Used simplifier rules: List('a) freely generated by [], +;; ⊦ [] + x = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ ¬ a ∈ []; (s)
| # ((a0 + x0) + a ' + y).distinct ≠ # ((a0 + x0) + y).distinct, a ∈ a0 + x0, ∀ a, y. ¬(# (x0 + a ' + y).distinct ≠ # (x0 + y).distinct ∧ a ∈ x0) ⊦ |
# ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ a0 ' ↔ a = a0; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) ⊦ a + x = a ' + x; (s)
| # ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦ |
# ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦
# ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦
Used formulas: a ∈ x0
| # ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦ |
# ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
| # ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct)
# (a0 ∈ x0 + a ' + y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x0 + a ' + y, a0
| ⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct) |
| # (a0 ∈ x0 + a ' + y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ a0 ' ↔ a = a0; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
# (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used formulas: a0 ∈ y
| # (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a0 ∈ y, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: rm-in-04: ⊦ a ∈ y → (a ' + x + y).distinct = (x + y).distinct; a: ⊦ (x + y) + z = x + y + z; from specification list
| # (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a0 ∈ y, a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
Used terms: a, y
| # (a0 ∈ x0 ∨ a0 ∈ y ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
| # (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
# (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used formulas: a0 ∈ x0
| # (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a0 ∈ x0, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: rm-in-05: ⊦ a ∈ x → (a ' + x + y).distinct = (x + y).distinct; a: ⊦ (x + y) + z = x + y + z; from specification list
| # (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a0 ∈ x0, a ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
Used terms: a, y
| # (a0 ∈ x0 ⊃ (x0 + a ' + y).distinct;a0 ' + (x0 + a ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
1 + # (x0 + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ # a ' = 0 +1; (s) ⊦ #(x + y) = # x + # y; (s)
| 1 + # (x0 + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct)
1 + # (x0 + a ' + y).distinct ≠ # (a0 ∈ x0 + y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x0 + y, a0
| ⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct) |
| 1 + # (x0 + a ' + y).distinct ≠ # (a0 ∈ x0 + y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + n = m + n0 ↔ n = n0; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ # a ' = 0 +1; (s) ⊦ #(x + y) = # x + # y; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # (x0 + a ' + y).distinct ≠ # (x0 + y).distinct, a ∈ x0, ¬ a0 ∈ x0, ¬ a0 ∈ y, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
Used terms: a, y
| # ((a0 ' + x0) + a ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0, a = a0 ∨ a ∈ x0 ⊦ |
# ((a0 ' + x0) + a0 ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
| # ((a0 ' + x0) + a0 ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct)
# (a0 ∈ x0 + a0 ' + y ⊃ (x0 + a0 ' + y).distinct;a0 ' + (x0 + a0 ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x0 + a0 ' + y, a0
| ⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct) |
| # (a0 ∈ x0 + a0 ' + y ⊃ (x0 + a0 ' + y).distinct;a0 ' + (x0 + a0 ' + y).distinct) ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (x0 + a0 ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ a0 ' ↔ a = a0; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # (x0 + a0 ' + y).distinct ≠ # ((a0 ' + x0) + y).distinct, ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct)
# (x0 + a0 ' + y).distinct ≠ # (a0 ∈ x0 + y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x0 + y, a0
| ⊦ (a ' + x).distinct = (a ∈ x ⊃ x.distinct;a ' + x.distinct) |
| # (x0 + a0 ' + y).distinct ≠ # (a0 ∈ x0 + y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
# (x0 + a0 ' + y).distinct ≠ # (a0 ∈ y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # (x0 + a0 ' + y).distinct ≠ # (a0 ∈ y ⊃ (x0 + y).distinct;a0 ' + (x0 + y).distinct), ¬ a0 ∈ x0, ∀ a1, y0. # (x0 + a1 ' + y0).distinct = # (x0 + y0).distinct ∨ ¬ a1 ∈ x0 ⊦ |
Used simplifier rules: rm-size-02: ⊦ a ∈ y → # (x + a ' + y).distinct = # (x + y).distinct; rm-size: ⊦ ¬ a ∈ x ∧ ¬ a ∈ y → # (x + a ' + y).distinct = # (x + y).distinct + 1; ⊦ #(x + y) = # x + # y; (s) ⊦ # a ' = 0 +1; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m + n = m + n0 ↔ n = n0; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic Used formulas: a0 ∈ y
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.