| ⊦ ¬ dups(x) ∧ n < # x → (a ∈ x -p n ↔ a ≠ x(n) ∧ a ∈ x) |
¬(a ∈ x -p n ↔ a ≠ x(n) ∧ a ∈ x), n < # x, ¬ dups(x) ⊦
| ¬(a ∈ x -p n ↔ a ≠ x(n) ∧ a ∈ x), n < # x, ¬ dups(x) ⊦ |
¬(a ∈ x -p n ↔ a ≠ x(n) ∧ a ∈ x), x ≠ [], n < # x, ¬ dups(x) ⊦
Used simplifier rules: ⊦ # x = 0 ↔ x = []; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic
| ¬(a ∈ x -p n ↔ a ≠ x(n) ∧ a ∈ x), x ≠ [], n < # x, ¬ dups(x) ⊦ |
¬(a ∈ (a0 + x0) -p n ↔ a ≠ (a0 + x0)(n) ∧ a ∈ a0 + x0), a0 + x0 ≠ [], n < #(a0 + x0), ¬ dups(a0 + x0), ∀ a, n. ¬(¬(a ∈ x0 -p n ↔ a ≠ x0(n) ∧ a ∈ x0) ∧ x0 ≠ [] ∧ n < # x0 ∧ ¬ dups(x0)) ⊦
Used simplifier rules: List freely generated by [], +;
| ¬(a ∈ (a0 + x0) -p n ↔ a ≠ (a0 + x0)(n) ∧ a ∈ a0 + x0), a0 + x0 ≠ [], n < #(a0 + x0), ¬ dups(a0 + x0), ∀ a, n. ¬(¬(a ∈ x0 -p n ↔ a ≠ x0(n) ∧ a ∈ x0) ∧ x0 ≠ [] ∧ n < # x0 ∧ ¬ dups(x0)) ⊦ |
¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ x0 = [] ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ dups(a ' + x) ↔ a ∈ x ∨ dups(x); (s) ⊦ a + x = a ' + x; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m < n + 1 ↔ ¬ n < m; (s) ⊦ m.+1 = m + 1; (s) ⊦ #(a ' + x) = (# x).+1; (s) ⊦ a ' + x ≠ []; (s) ⊦ a ∈ b ' + x ↔ a = b ∨ a ∈ x; (s)
| ¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ x0 = [] ∨ ¬ n0 < # x0 ⊦ |
¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ x0 = [] ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: delnr-one: ⊦ a ' -p 0 = []; one-03: ⊦ a '(0) = a; ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ # [] = 0; (s) ⊦ m ≤ 0 ↔ m = 0; (s) ⊦ ¬ dups([]); (s) ⊦ ¬ a ∈ []; (s) Used formulas: x0 = []
| ¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ x0 = [] ∨ ¬ n0 < # x0 ⊦ |
¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| ¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used formulas: a ∈ (a0 ' + x0) -p n
| ¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)
| x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0) |
a = a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)
a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)
Used formulas: a = a0
| a = a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0) |
a0 = (a0 ' + x0)(n), x0 ≠ [], a0 ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| a0 = (a0 ' + x0)(n), x0 ≠ [], a0 ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
⊦ ¬ n < # x → (x + y)(n) = y(n - # x)
a0 = x0(n - # a0 '), x0 ≠ [], a0 ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: get-zero: ⊦ (a ' + x)(0) = a; delpos-base: ⊦ (a ' + x) -p 0 = x; ⊦ # a ' = 0.+1; (s) ⊦ m < 1 ↔ m = 0; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n, x0, a0 '
| ⊦ ¬ n < # x → (x + y)(n) = y(n - # x) |
| a0 = x0(n - # a0 '), x0 ≠ [], a0 ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
n ≠ 0, x0 ≠ [], n ≤ # x0, x0(n - 1) ∈ ((x0(n - 1))' + x0) -p n, ¬ dups(x0), ¬ x0(n - 1) ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ # a ' = 0.+1; (s)
| n ≠ 0, x0 ≠ [], n ≤ # x0, x0(n - 1) ∈ ((x0(n - 1))' + x0) -p n, ¬ dups(x0), ¬ x0(n - 1) ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
Used simplifier rules: delpos-rec: ⊦ (a ' + x) -p (n + 1) = a + (x -p n); get-in: ⊦ m < # x → (x(m) ∈ x ↔ true); ⊦ m + 1 ≠ 0; (s) ⊦ a + x = a ' + x; (s) ⊦ a ∈ b ' + x ↔ a = b ∨ a ∈ x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m + 1 ≤ n ↔ m < n; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m
| a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0) |
a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0
| a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0 |
a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, a ∈ x0, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0
a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0
Used formulas: a ∈ x0
| a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, a ∈ x0, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0 |
(a0 ' + x0)(n) ≠ a0, x0 ≠ [], (a0 ' + x0)(n) ∈ (a0 ' + x0) -p n, (a0 ' + x0)(n) ∈ x0, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| (a0 ' + x0)(n) ≠ a0, x0 ≠ [], (a0 ' + x0)(n) ∈ (a0 ' + x0) -p n, (a0 ' + x0)(n) ∈ x0, n ≤ # x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
⊦ ¬ n < # x → (x + y)(n) = y(n - # x)
x0(n - # a0 ') ≠ a0, x0 ≠ [], n ≤ # x0, x0(n - # a0 ') ∈ x0, x0(n - # a0 ') ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: get-zero: ⊦ (a ' + x)(0) = a; ⊦ # a ' = 0.+1; (s) ⊦ m < 1 ↔ m = 0; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n, x0, a0 '
| ⊦ ¬ n < # x → (x + y)(n) = y(n - # x) |
| x0(n - # a0 ') ≠ a0, x0 ≠ [], n ≤ # x0, x0(n - # a0 ') ∈ x0, x0(n - # a0 ') ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
n ≠ 0, x0 ≠ [], x0(n - 1) ≠ a0, n ≤ # x0, x0(n - 1) ∈ (a0 ' + x0) -p n, x0(n - 1) ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ # a ' = 0.+1; (s)
| n ≠ 0, x0 ≠ [], x0(n - 1) ≠ a0, n ≤ # x0, x0(n - 1) ∈ (a0 ' + x0) -p n, x0(n - 1) ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
n = m + 1, n ≠ 0, x0 ≠ [], x0(m) ≠ a0, n ≤ # x0, x0(m) ∈ x0, x0(m) ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m
| n = m + 1, n ≠ 0, x0 ≠ [], x0(m) ≠ a0, n ≤ # x0, x0(m) ∈ x0, x0(m) ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
x0(m) ≠ a0, x0 ≠ [], m < # x0, x0(m) ∈ x0, x0(m) ∈ x0 -p m, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: delpos-rec: ⊦ (a ' + x) -p (n + 1) = a + (x -p n); ⊦ # x = 0 ↔ x = []; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ m + 1 ≤ n ↔ m < n; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ b ' + x ↔ a = b ∨ a ∈ x; (s) ⊦ a + x = a ' + x; (s) ⊦ m + 1 ≠ 0; (s)
| x0(m) ≠ a0, x0 ≠ [], m < # x0, x0(m) ∈ x0, x0(m) ∈ x0 -p m, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
Used terms: x0(m), m
| a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ a ≠ (a0 ' + x0)(n) ∧ a ∈ x0 |
a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
n = n1.+1, a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: delpos-base: ⊦ (a ' + x) -p 0 = x; Nat freely generated by 0, +1; ⊦ 0 ≤ m; (s) a: ⊦ (x + y) + z = x + y + z; from specification list
| n = n1.+1, a ≠ a0, x0 ≠ [], a ∈ (a0 ' + x0) -p n, n ≤ # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ a0, x0 ≠ [], a ∈ x0 -p n1, n1 < # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: delpos-rec: ⊦ (a ' + x) -p (n + 1) = a + (x -p n); ⊦ # x = 0 ↔ x = []; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ≠ b → (a ∈ b ' + x ↔ a ∈ x); (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ a + x = a ' + x; (s) ⊦ m.+1 = m + 1; (s) ⊦ m + 1 ≤ n ↔ m < n; (s)
| a ≠ a0, x0 ≠ [], a ∈ x0 -p n1, n1 < # x0, ¬ a ∈ x0, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
Used terms: a, n1
| ¬(a ∈ (a0 ' + x0) -p n ↔ a ≠ (a0 ' + x0)(n) ∧ (a = a0 ∨ a ∈ x0)), x0 ≠ [], n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| a ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ (a0 ' + x0)(n), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
a ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a ∈ x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used formulas: a ∈ x0
| a ≠ (a0 ' + x0)(n), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ (a0 ' + x0)(n), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| a ≠ (a0 ' + x0)(n), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
⊦ ¬ n < # x → (x + y)(n) = y(n - # x)
a ≠ x0(n - # a0 '), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: get-zero: ⊦ (a ' + x)(0) = a; delpos-base: ⊦ (a ' + x) -p 0 = x; ⊦ # a ' = 0.+1; (s) ⊦ m < 1 ↔ m = 0; (s) ⊦ 0 ≤ m; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n, x0, a0 '
| ⊦ ¬ n < # x → (x + y)(n) = y(n - # x) |
| a ≠ x0(n - # a0 '), x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ x0(n - 1), n ≠ 0, x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ # a ' = 0.+1; (s)
| a ≠ x0(n - 1), n ≠ 0, x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
n = m + 1, a ≠ x0(m), n ≠ 0, x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m
| n = m + 1, a ≠ x0(m), n ≠ 0, x0 ≠ [], a ∈ x0, n ≤ # x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a ≠ x0(m), x0 ≠ [], a ∈ x0, m < # x0, ¬ a ∈ x0 -p m, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: delpos-rec: ⊦ (a ' + x) -p (n + 1) = a + (x -p n); ⊦ # x = 0 ↔ x = []; (s) f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ b ' + x ↔ ¬(a ≠ b ∧ ¬ a ∈ x); (ss) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ a + x = a ' + x; (s) ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ m + 1 ≠ 0; (s)
| a ≠ x0(m), x0 ≠ [], a ∈ x0, m < # x0, ¬ a ∈ x0 -p m, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
Used terms: a, m
| a ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a ∈ x0, ¬ a ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), a = a0 ∨ a ∈ x0, ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a0 ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
| a0 ≠ (a0 ' + x0)(n), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
⊦ ¬ n < # x → (x + y)(n) = y(n - # x)
a0 ≠ x0(n - # a0 '), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: get-zero: ⊦ (a ' + x)(0) = a; ⊦ # a ' = 0.+1; (s) ⊦ m < 1 ↔ m = 0; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: n, x0, a0 '
| ⊦ ¬ n < # x → (x + y)(n) = y(n - # x) |
| a0 ≠ x0(n - # a0 '), x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ¬ n < # a0 ', ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
a0 ≠ x0(n - 1), n ≠ 0, x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ # a ' = 0.+1; (s)
| a0 ≠ x0(n - 1), n ≠ 0, x0 ≠ [], n ≤ # x0, ¬ a0 ∈ (a0 ' + x0) -p n, ¬ a0 ∈ x0, ¬ dups(x0), ∀ a1, n0. (a1 ∈ x0 -p n0 ↔ a1 ≠ x0(n0) ∧ a1 ∈ x0) ∨ ¬ n0 < # x0 ⊦ |
Used simplifier rules: delpos-rec: ⊦ (a ' + x) -p (n + 1) = a + (x -p n); ⊦ m + 1 ≠ 0; (s) ⊦ m + 1 ≤ n ↔ m < n; (s) ⊦ a + x = a ' + x; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ a ∈ b ' + x ↔ ¬(a ≠ b ∧ ¬ a ∈ x); (ss) a: ⊦ (x + y) + z = x + y + z; from specification list n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m
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.