| ⊦ ¬ dups(x) → (¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))) |
¬ dups(x) ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))
| ¬ dups(x) ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b)) |
⊦ dups(x) ↔ (∃ a, x0, y, z. x = x0 + (a + (y + (a + z))))
∀ a, x0, y, z. x ≠ x0 + (a + (y + (a + z))) ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))
Used terms: x
| ⊦ dups(x) ↔ (∃ a, x0, y, z. x = x0 + (a + (y + (a + z)))) |
| ∀ a, x0, y, z. x ≠ x0 + (a + (y + (a + z))) ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b)) |
∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s)
| ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬ dups(x.map(f)) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b)) |
⊦ dups(x) ↔ (∃ a, x0, y, z. x = x0 + (a + (y + (a + z))))
∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬(∃ fa, bx, bx0, bx1. x.map(f) = bx + (fa + (bx0 + (fa + bx1)))) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))
Used terms: x.map(f)
| ⊦ dups(x) ↔ (∃ a, x0, y, z. x = x0 + (a + (y + (a + z)))) |
| ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬(∃ fa, bx, bx0, bx1. x.map(f) = bx + (fa + (bx0 + (fa + bx1)))) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b)) |
∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬(∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b))
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s)
| ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ¬(∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1) ↔ (∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b)) |
∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1
∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z, ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1 ⊦
| ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
f(a) = f(b), a ≠ b, a ∈ x, b ∈ x, ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1
| f(a) = f(b), a ≠ b, a ∈ x, b ∈ x, ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z))
f(a) = f(b), a ≠ b, b ∈ x, ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z, ∃ y, z. x = y + (a + z) ⊦ ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used terms: a, x
| ⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z)) |
| f(a) = f(b), a ≠ b, b ∈ x, ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z, ∃ y, z. x = y + (a + z) ⊦ ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, b ∈ y ∨ b ∈ z ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s) ⊦ (x + y).map(f) = x.map(f) + y.map(f); (s) ⊦ a ≠ a0 → (a ∈ a0 ' + x ↔ a ∈ x); (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, b ∈ y ∨ b ∈ z ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
f(a) = f(b), a ≠ b, b ∈ y, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
f(a) = f(b), a ≠ b, b ∈ z, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
| f(a) = f(b), a ≠ b, b ∈ y, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z))
f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, ∃ y0, z. y = y0 + (b + z) ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used terms: b, y
| ⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z)) |
| f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, ∃ y0, z. y = y0 + (b + z) ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
f(a) = f(b), a ≠ b, ∀ a0, x0, y1, z1. y0 + (b ' + z0) + a ' + z ≠ x0 + a0 ' + y1 + a0 ' + z1 ⊦ ∃ fa, bx, bx0, bx1. (y0.map(f) + f(b) ' + z0.map(f)) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s) ⊦ (x + y).map(f) = x.map(f) + y.map(f); (s)
| f(a) = f(b), a ≠ b, ∀ a0, x0, y1, z1. y0 + (b ' + z0) + a ' + z ≠ x0 + a0 ' + y1 + a0 ' + z1 ⊦ ∃ fa, bx, bx0, bx1. (y0.map(f) + f(b) ' + z0.map(f)) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: f(b), y0.map(f), z0.map(f), z.map(f)
| f(a) = f(b), a ≠ b, b ∈ z, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z))
f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, ∃ y, z0. z = y + (b + z0) ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used terms: b, z
| ⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z)) |
| f(a) = f(b), a ≠ b, ∀ a0, x0, y0, z0. y + a ' + z ≠ x0 + a0 ' + y0 + a0 ' + z0, ∃ y, z0. z = y + (b + z0) ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + z.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
f(a) = f(b), a ≠ b, ∀ a0, x0, y1, z1. y + a ' + y0 + b ' + z0 ≠ x0 + a0 ' + y1 + a0 ' + z1 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + y0.map(f) + f(b) ' + z0.map(f) = bx + fa ' + bx0 + fa ' + bx1
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s) ⊦ (x + y).map(f) = x.map(f) + y.map(f); (s)
| f(a) = f(b), a ≠ b, ∀ a0, x0, y1, z1. y + a ' + y0 + b ' + z0 ≠ x0 + a0 ' + y1 + a0 ' + z1 ⊦ ∃ fa, bx, bx0, bx1. y.map(f) + f(b) ' + y0.map(f) + f(b) ' + z0.map(f) = bx + fa ' + bx0 + fa ' + bx1 |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: f(b), y.map(f), y0.map(f), z0.map(f)
| ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z, ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∃ fa, bx, bx0, bx1. x.map(f) = bx + fa ' + bx0 + fa ' + bx1 ⊦ |
x.map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦
| x.map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a, b. a ∈ x ∧ b ∈ x ∧ a ≠ b → f(a) ≠ f(b), ∀ a, x0, y, z. x ≠ x0 + a ' + y + a ' + z ⊦ |
(a + x0).map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. a0 ∈ a + x0 ∧ b ∈ a + x0 ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f, bx, fa, bx0, bx1. ¬(x0.map(f) = bx + fa ' + bx0 + fa ' + bx1 ∧ (∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f(a) ≠ f(b)) ∧ (∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z)) ⊦
Used simplifier rules: List[A] freely generated by [], +; ⊦ [].map(f) = []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a ' ≠ []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list
| (a + x0).map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. a0 ∈ a + x0 ∧ b ∈ a + x0 ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f, bx, fa, bx0, bx1. ¬(x0.map(f) = bx + fa ' + bx0 + fa ' + bx1 ∧ (∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f(a) ≠ f(b)) ∧ (∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z)) ⊦ |
f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ≠ a0 → (a ∈ a0 ' + x ↔ a ∈ x); (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) ⊦ a ∈ a0 ' + x ↔ a = a0 ∨ a ∈ x; (s) in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s)
| f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦ |
f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, bx = [], ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦
f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, bx = fa1 + bx5, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦
Used simplifier rules: List[A] freely generated by [], +;
| f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, bx = [], ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦ |
x0.map(f) = bx0 + f(a) ' + bx1, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦
Used simplifier rules: ⊦ ¬ a ∈ []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ' + x = a0 ' + y ↔ a = a0 ∧ x = y; (ws) ⊦ [] + x = x; (s)
| x0.map(f) = bx0 + f(a) ' + bx1, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦ |
x0.map(f) = bx0 + f(a) ' + bx1, f(a) ∈ x0.map(f), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z) ⊦
Used simplifier rules: ⊦ ¬ a ∈ x → x ≠ y + a ' + z; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used formulas: f(a) ∈ x0.map(f)
| x0.map(f) = bx0 + f(a) ' + bx1, f(a) ∈ x0.map(f), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z) ⊦ |
x0.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), a0 ∈ x0, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦
Used simplifier rules: ⊦ b ∈ x.map(f) ↔ (∃ a. b = f(a) ∧ a ∈ x); (as)
| x0.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), a0 ∈ x0, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦ |
⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z))
x0.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∃ y, z. x0 = y + (a0 + z) ⊦
Used terms: a0, x0
| ⊦ a ∈ x ↔ (∃ y, z. x = y + (a + z)) |
| x0.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∃ y, z. x0 = y + (a0 + z) ⊦ |
y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0), ∀ a1, b. (a1 = a ∨ a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b = a ∨ b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ a1, x1, y0, z0. a ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s) ⊦ a ∈ a0 ' + x ↔ a = a0 ∨ a ∈ x; (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s) ⊦ (x + y).map(f) = x.map(f) + y.map(f); (s)
| y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0), ∀ a1, b. (a1 = a ∨ a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b = a ∨ b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ a1, x1, y0, z0. a ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0 ⊦ |
y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), (a = a ∨ a ∈ y ∨ a = a0 ∨ a ∈ z) ∧ (a0 = a ∨ a0 ∈ y ∨ a0 = a0 ∨ a0 ∈ z) ∧ a ≠ a0 → f(a) ≠ f(a0), ∀ a1, x1, y0, z0. a ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0, ∀ a1, b. (a1 = a ∨ a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b = a ∨ b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0) ⊦
Used terms: a, a0
| y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, f(a) = f(a0), (a = a ∨ a ∈ y ∨ a = a0 ∨ a ∈ z) ∧ (a0 = a ∨ a0 ∈ y ∨ a0 = a0 ∨ a0 ∈ z) ∧ a ≠ a0 → f(a) ≠ f(a0), ∀ a1, x1, y0, z0. a ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0, ∀ a1, b. (a1 = a ∨ a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b = a ∨ b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0) ⊦ |
y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, ∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ a1, x1, y0, z0. a0 ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0, ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0) ⊦
| y.map(f) + f(a0) ' + z.map(f) = bx0 + f(a0) ' + bx1, ∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f(a1) ≠ f(b), ∀ a1, x1, y0, z0. a0 ' + y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0, ∀ f0, bx2, fa0, bx3, bx4. y.map(f0) + f0(a0) ' + z.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a1, b. (a1 ∈ y ∨ a1 = a0 ∨ a1 ∈ z) ∧ (b ∈ y ∨ b = a0 ∨ b ∈ z) ∧ a1 ≠ b → f0(a1) ≠ f0(b)) ∨ ¬(∀ a1, x1, y0, z0. y + a0 ' + z ≠ x1 + a1 ' + y0 + a1 ' + z0) ⊦ |
Used simplifier rules: ⊦ [] + x = x; (s) ⊦ # x = # z → (x + y = z + y0 ↔ x = z ∧ y = y0); (ws) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: a0, [], y, z
| f(a) ' + x0.map(f) = bx + fa ' + bx0 + fa ' + bx1, bx = fa1 + bx5, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, f(a) ∈ bx ∨ f(a) = fa ∨ f(a) ∈ bx0 ∨ f(a) ∈ bx1 ⊦ |
x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ a0 ' + x ↔ a = a0 ∨ a ∈ x; (s) ⊦ a + x = a ' + x; (s) ⊦ a ' + x = a0 ' + y ↔ a = a0 ∧ x = y; (ws)
| x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ f0, bx2, fa0, bx3, bx4. x0.map(f0) ≠ bx2 + fa0 ' + bx3 + fa0 ' + bx4 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f0(a) ≠ f0(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z), ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z ⊦ |
x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), x0.map(f) ≠ bx5 + fa ' + bx0 + fa ' + bx1 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f(a) ≠ f(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z) ⊦
Used terms: f, bx5, fa, bx0, bx1
| x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), x0.map(f) ≠ bx5 + fa ' + bx0 + fa ' + bx1 ∨ ¬(∀ a, b. a ∈ x0 ∧ b ∈ x0 ∧ a ≠ b → f(a) ≠ f(b)) ∨ ¬(∀ a, x1, y, z. x0 ≠ x1 + a ' + y + a ' + z) ⊦ |
x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ¬(a0 ∈ x0 ∧ b ∈ x0 ∧ a0 ≠ b → f(a0) ≠ f(b)) ∨ x0 = x1 + a1 ' + y + a1 ' + z ⊦
| x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b), ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ¬(a0 ∈ x0 ∧ b ∈ x0 ∧ a0 ≠ b → f(a0) ≠ f(b)) ∨ x0 = x1 + a1 ' + y + a1 ' + z ⊦ |
x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, f(a0) = f(b), a0 ≠ b, a0 ∈ x0, b ∈ x0, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦
x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, x0 = x1 + a1 ' + y + a1 ' + z, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦
| x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, f(a0) = f(b), a0 ≠ b, a0 ∈ x0, b ∈ x0, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦ |
Used terms: a0, b
| x0.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, x0 = x1 + a1 ' + y + a1 ' + z, ∀ a0, x1, y, z. a ' + x0 ≠ x1 + a0 ' + y + a0 ' + z, ∀ a0, b. (a0 = a ∨ a0 ∈ x0) ∧ (b = a ∨ b ∈ x0) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦ |
x1.map(f) + f(a1) ' + y.map(f) + f(a1) ' + z.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, x, y0, z0. a ' + x1 + a1 ' + y + a1 ' + z ≠ x + a0 ' + y0 + a0 ' + z0, ∀ a0, b. (a0 = a ∨ a0 ∈ x1 ∨ a0 = a1 ∨ a0 ∈ y ∨ a0 ∈ z) ∧ (b = a ∨ b ∈ x1 ∨ b = a1 ∨ b ∈ y ∨ b ∈ z) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ≠ a0 → (a ∈ a0 ' + x ↔ a ∈ x); (s) ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s) ⊦ a ∈ a0 ' + x ↔ a = a0 ∨ a ∈ x; (s) ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).map(f) = f(a) + x.map(f); (s) ⊦ (x + y).map(f) = x.map(f) + y.map(f); (s)
| x1.map(f) + f(a1) ' + y.map(f) + f(a1) ' + z.map(f) = bx5 + fa ' + bx0 + fa ' + bx1, ∀ a0, x, y0, z0. a ' + x1 + a1 ' + y + a1 ' + z ≠ x + a0 ' + y0 + a0 ' + z0, ∀ a0, b. (a0 = a ∨ a0 ∈ x1 ∨ a0 = a1 ∨ a0 ∈ y ∨ a0 ∈ z) ∧ (b = a ∨ b ∈ x1 ∨ b = a1 ∨ b ∈ y ∨ b ∈ z) ∧ a0 ≠ b → f(a0) ≠ f(b) ⊦ |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: a1, a ' + x1, y, z
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.