| ∀ a. a ∈ x ↔ a ∈ y ⊦ # rmdup(x) = # rmdup(y) |
# rmdup(x) ≠ # rmdup(y), ∀ a. a ∈ x ↔ a ∈ y ⊦
| # rmdup(x) ≠ # rmdup(y), ∀ a. a ∈ x ↔ a ∈ y ⊦ |
# rmdup([]) ≠ # rmdup(y), ∀ a. a ∈ [] ↔ a ∈ y ⊦
# rmdup(a + x0) ≠ # rmdup(y), ∀ a0. a0 ∈ a + x0 ↔ a0 ∈ y, ∀ y. ¬(# rmdup(x0) ≠ # rmdup(y) ∧ (∀ a. a ∈ x0 ↔ a ∈ y)) ⊦
Used simplifier rules: list freely generated by [], +;;
| # rmdup([]) ≠ # rmdup(y), ∀ a. a ∈ [] ↔ a ∈ y ⊦ |
y ≠ [], ∀ a. ¬ a ∈ y ⊦
Used simplifier rules: rmdup-e: ⊦ rmdup([]) = []; rm-empty: ⊦ rmdup(x) = [] ↔ x = []; ⊦ ¬ a ∈ []; (s) ⊦ # x = 0 ↔ x = []; (s) ⊦ # [] = 0; (s)
| y ≠ [], ∀ a. ¬ a ∈ y ⊦ |
Used simplifier rules: ⊦ x.head ∈ x ↔ x ≠ []; (s) Used terms: y.head
| # rmdup(a + x0) ≠ # rmdup(y), ∀ a0. a0 ∈ a + x0 ↔ a0 ∈ y, ∀ y. ¬(# rmdup(x0) ≠ # rmdup(y) ∧ (∀ a. a ∈ x0 ↔ a ∈ y)) ⊦ |
# rmdup(a ' + x0) ≠ # rmdup(y), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦
Used simplifier rules: ⊦ a + x = a ' + x; (s)
| # rmdup(a ' + x0) ≠ # rmdup(y), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦ |
# rmdup(a ' + x0) ≠ # rmdup(y), a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
# rmdup(a ' + x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used formulas: a ∈ x0
| # rmdup(a ' + x0) ≠ # rmdup(y), a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
# rmdup(x0) ≠ # rmdup(y), a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦
Used simplifier rules: rmdup-y: ⊦ a ∈ x → rmdup(a ' + x) = rmdup(x); a: ⊦ (x + y) + z = x + y + z; from specification list
| # rmdup(x0) ≠ # rmdup(y), a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦ |
# rmdup(x0) ≠ # rmdup(y), a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), # rmdup(x0) = # rmdup(y) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y) ⊦
Used terms: y
| # rmdup(x0) ≠ # rmdup(y), a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), # rmdup(x0) = # rmdup(y) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y) ⊦ |
# rmdup(x0) ≠ # rmdup(y), ¬(a0 ∈ x0 ↔ a0 ∈ y), a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a1. a1 ∈ x0 ↔ a1 ∈ y ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ b ' ↔ a = b; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # rmdup(x0) ≠ # rmdup(y), ¬(a0 ∈ x0 ↔ a0 ∈ y), a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a1. a1 ∈ x0 ↔ a1 ∈ y ⊦ |
Used terms: a0
| # rmdup(a ' + x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦
Used simplifier rules: rmdup-n: ⊦ ¬ a ∈ x → rmdup(a ' + x) = a + rmdup(x); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ # a ' = 0 +1; (s) ⊦ #(x + y) = # x + # y; (s) ⊦ a + x = a ' + x; (s)
| 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦ |
a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used terms: a
| a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦
| a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y ⊦ |
⊦ a ∈ x → (∃ y, z. x = y + a ' + z ∧ ¬ a ∈ y)
a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, a ∈ y → (∃ y0, z. y = y0 + a ' + z ∧ ¬ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used terms: a, y
| ⊦ a ∈ x → (∃ y, z. x = y + a ' + z ∧ ¬ a ∈ y) |
| a ∈ a ' + x0 ↔ a ∈ y, 1 + # rmdup(x0) ≠ # rmdup(y), ¬ a ∈ x0, a ∈ y → (∃ y0, z. y = y0 + a ' + z ∧ ¬ a ∈ y0), ∀ a0. a0 ∈ a ' + x0 ↔ a0 ∈ y, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
1 + # rmdup(x0) ≠ # rmdup(y0 + a ' + z), ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ b ' ↔ a = b; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) in-13: ⊦ x = y + a ' + z → a ∈ x; (forward) from specification list ⊦ x = y + a ' + z → a ∈ x; (s)
| 1 + # rmdup(x0) ≠ # rmdup(y0 + a ' + z), ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
⊦ ¬ a ∈ x ∧ ¬ a ∈ y → # rmdup(x + a ' + y) = # rmdup(x + y) + 1
1 + # rmdup(x0) ≠ # rmdup(y0 + a ' + z), ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ ¬ a ∈ y0 ∧ ¬ a ∈ z
1 + # rmdup(x0) ≠ # rmdup(y0 + z) + 1, ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used terms: z, a, y0
| ⊦ ¬ a ∈ x ∧ ¬ a ∈ y → # rmdup(x + a ' + y) = # rmdup(x + y) + 1 |
| 1 + # rmdup(x0) ≠ # rmdup(y0 + a ' + z), ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ ¬ a ∈ y0 ∧ ¬ a ∈ z |
1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: rm-size-02: ⊦ a ∈ y → # rmdup(x + a ' + y) = # rmdup(x + y); a: ⊦ (x + y) + z = x + y + z; from specification list
| 1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z))
1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, a ∈ rmdup(z) ↔ (∃ y, z0. rmdup(z) = y + (a + z0)), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used terms: a, rmdup(z)
| ⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z)) |
| 1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, a ∈ rmdup(z) ↔ (∃ y, z0. rmdup(z) = y + (a + z0)), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: rm-in-03: ⊦ ¬ a ∈ rmdup(x) → ¬ a ∈ x; rm-notin-01: ⊦ rmdup(x) = y + a ' + z → a ∈ x ∧ ¬ a ∈ y ∧ ¬ a ∈ z; ⊦ x = y + a ' + z → a ∈ x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list in-13: ⊦ x = y + a ' + z → a ∈ x; (forward) from specification list ⊦ ¬ a ∈ x → x ≠ y + a ' + z; (s) ⊦ a + x = a ' + x; (s)
| rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + z), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
⊦ rmdup(x + rmdup(y)) = rmdup(x + y)
rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + rmdup(z)), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used terms: z, y0
| ⊦ rmdup(x + rmdup(y)) = rmdup(x + y) |
| rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + rmdup(z)), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + y + a ' + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
| rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup(y0 + y + a ' + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
⊦ ¬ a ∈ x ∧ ¬ a ∈ y → # rmdup(x + a ' + y) = # rmdup(x + y) + 1
rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup((y0 + y) + z0) + 1, a ∈ z, ¬ a ∈ y0 + y, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦
Used simplifier rules: ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: z0, a, y0 + y
| ⊦ ¬ a ∈ x ∧ ¬ a ∈ y → # rmdup(x + a ' + y) = # rmdup(x + y) + 1 |
| rmdup(z) = y + a ' + z0, 1 + # rmdup(x0) ≠ # rmdup((y0 + y) + z0) + 1, a ∈ z, ¬ a ∈ y0 + y, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) 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)
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), # rmdup(x0) = # rmdup((y0 + y) + z0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ (y0 + y) + z0) ⊦
Used terms: (y0 + y) + z0
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), # rmdup(x0) = # rmdup((y0 + y) + z0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ (y0 + y) + z0) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used terms: a0
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0), a ∈ z, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, a0 ∈ x0, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, a0 ∈ x0, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ x0, a ∈ z, a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ x0, a ∈ z, a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ z, a ∈ z, a0 ∈ x0, a0 ∈ rmdup(z), ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦
Used simplifier rules: rm-in-03: ⊦ ¬ a ∈ rmdup(x) → ¬ a ∈ x; Used formulas: a0 ∈ rmdup(z)
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ z, a ∈ z, a0 ∈ x0, a0 ∈ rmdup(z), ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ y + a ' + z0, a0 ∈ x0, a ∈ z, a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a0 ∈ y + a ' + z0, a0 ∈ x0, a ∈ z, a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ y, ¬ a0 ∈ z0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0 ⊦ |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ ¬ a ∈ x → (a ∈ b ' + x ↔ a = b); (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → ¬ a0 ∈ y0 ∧ ¬ a0 ∈ z, a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ≠ a → ¬ a0 ∈ y0 ∧ ¬ a0 ∈ z, a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y0 ∨ a0 ∈ y ∨ a0 ∈ z0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y ∨ a0 ∈ z0 ⊦
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y ∨ a0 ∈ z0 ⊦ |
rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ rmdup(z), ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y ∨ a0 ∈ z0 ⊦
Used simplifier rules: rm-in-01: ⊦ a ∈ rmdup(x) → a ∈ x; Used formulas: a0 ∈ rmdup(z)
| rmdup(z) = y + a ' + z0, # rmdup(x0) ≠ # rmdup((y0 + y) + z0), a ∈ z, ¬ a0 ∈ rmdup(z), ¬ a0 ∈ z, ¬ a0 ∈ y0, ¬ a0 ∈ x0, ¬ a ∈ z0, ¬ a ∈ y, ¬ a ∈ y0, ¬ a ∈ x0, a0 ∈ y ∨ a0 ∈ z0 ⊦ |
Used simplifier rules: ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) a: ⊦ (x + y) + z = x + y + z; from specification list
| 1 + # rmdup(x0) ≠ # rmdup(y0 + z) + 1, ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0) ⊦ |
# rmdup(x0) ≠ # rmdup(y0 + z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
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)
| # rmdup(x0) ≠ # rmdup(y0 + z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ y0. # rmdup(x0) = # rmdup(y0) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0), ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
# rmdup(x0) ≠ # rmdup(y0 + z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), # rmdup(x0) = # rmdup(y0 + z) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0 + z) ⊦
Used terms: y0 + z
| # rmdup(x0) ≠ # rmdup(y0 + z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), # rmdup(x0) = # rmdup(y0 + z) ∨ ¬(∀ a. a ∈ x0 ↔ a ∈ y0 + z) ⊦ |
# rmdup(x0) ≠ # rmdup(y0 + z), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| # rmdup(x0) ≠ # rmdup(y0 + z), ¬(a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z), ¬ a ∈ z, ¬ a ∈ y0, ¬ a ∈ x0, ∀ a0. a0 ≠ a → (a0 ∈ x0 ↔ a0 ∈ y0 ∨ a0 ∈ z) ⊦ |
Used terms: a0
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.