| ⊦ be ' ⊒w be0 ' + bel ↔ be0 = be ∧ bel = [] |
¬(be ' ⊒w be0 ' + bel ↔ be0 = be ∧ bel = []) ⊦
| ¬(be ' ⊒w be0 ' + bel ↔ be0 = be ∧ bel = []) ⊦ |
∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = []
Used simplifier rules: B-postfix-weak: ⊦ bel0 ⊒w bel1 ↔ (∀ l. bel0 |SF l ⊒ bel1 |SF l); B-restrict-SF-l: ⊦ bel |SF l = bel.filter(λ be. be = SF ∨ be.l = l); ⊦ x ⊒ x; (s) ⊦ a '.filter(p) = (p(a) ⊃ a ';[]); (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + [] = x; (s) ⊦ (a ' + x).filter(p) = (p(a) ⊃ a ';[]) + x.filter(p); (s)
| ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = [] |
bel = [], ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = []
bel = be1 + bel0, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = []
Used simplifier rules: List('a) freely generated by [], +;;
| bel = [], ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = [] |
be0 ≠ be, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + [] = x; (s) ⊦ [].filter(p) = []; (s)
| be0 ≠ be, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦ |
be0 ≠ be, (be = SF ∨ be.l = be.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦
Used terms: be.l
| be0 ≠ be, (be = SF ∨ be.l = be.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦ |
be0 ≠ be, be ' ⊒ (be0 = SF ∨ be0.l = be.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦
| be0 ≠ be, be ' ⊒ (be0 = SF ∨ be0.l = be.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦ |
be0 ≠ be, be ' ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]), be0 = SF ∨ be0.l = be.l ⊦
be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, be ' ⊒ [], ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦
| be0 ≠ be, be ' ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]), be0 = SF ∨ be0.l = be.l ⊦ |
⊦ x ⊒ y ↔ (∃ z. z + y = x)
Used simplifier rules: ⊦ a ' = x + a0 ' ↔ a = a0 ∧ x = []; (ws) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: be ', be0 '
| ⊦ x ⊒ y ↔ (∃ z. z + y = x) |
| be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, be ' ⊒ [], ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) ⊦ |
be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦
Used simplifier rules: ⊦ x ⊒ []; (s)
| be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦ |
be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ∨ be.l = be0.l ⊃ be ';[]) ⊒ (be0.l = be0.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦
Used terms: be0.l
| be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ∨ be.l = be0.l ⊃ be ';[]) ⊒ (be0.l = be0.l ⊃ be0 ';[]), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦ |
be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ⊃ SF ';[]) ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦
| be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ⊃ SF ';[]) ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦ |
be = SF, be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ⊃ SF ';[]) ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦
Used simplifier rules: ⊦ [] ⊒ x ↔ x = []; (s) ⊦ a ' ≠ []; (s) Used formulas: be = SF
| be = SF, be0.l ≠ be.l, be0 ≠ SF, be0 ≠ be, (be = SF ⊃ SF ';[]) ⊒ be0 ', ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) ⊦ |
be0.l ≠ SF.l, be0 ≠ SF, SF ' ⊒ be0 ', ∀ l. SF ' ⊒ (be0.l = l ⊃ be0 ';[]) ⊦
| be0.l ≠ SF.l, be0 ≠ SF, SF ' ⊒ be0 ', ∀ l. SF ' ⊒ (be0.l = l ⊃ be0 ';[]) ⊦ |
⊦ x ⊒ y ↔ (∃ z. z + y = x)
Used simplifier rules: ⊦ a ' = x + a0 ' ↔ a = a0 ∧ x = []; (ws) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: SF ', be0 '
| ⊦ x ⊒ y ↔ (∃ z. z + y = x) |
| bel = be1 + bel0, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = [] |
bel = be1 + bel0, (be = SF ∨ be.l = be1.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = []
Used terms: be1.l
| bel = be1 + bel0, (be = SF ∨ be.l = be1.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + bel.filter(λ be. be = SF ∨ be.l = l) ⊦ be0 = be ∧ bel = [] |
(be = SF ∨ be.l = be1.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ' ≠ []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a + x = a ' + x; (s) ⊦ (a ' + x).filter(p) = (p(a) ⊃ a ';[]) + x.filter(p); (s)
| (be = SF ∨ be.l = be1.l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l) ⊦ |
be ' ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦
Used simplifier rules: ⊦ [] ⊒ x ↔ x = []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a ' ≠ []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list
| be ' ⊒ (be0 = SF ∨ be0.l = be1.l ⊃ be0 ';[]) + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦ |
be ' ⊒ be0 ' + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l, be0 = SF ∨ be0.l = be1.l ⊦
be0.l ≠ be1.l, be0 ≠ SF, be ' ⊒ [] + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦
| be ' ⊒ be0 ' + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l, be0 = SF ∨ be0.l = be1.l ⊦ |
⊦ x ⊒ y ↔ (∃ z. z + y = x)
Used simplifier rules: ⊦ x + a ' + y = a0 ' ↔ x = [] ∧ a = a0 ∧ y = []; (ws) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a ' ≠ []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: be ', be0 ' + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l)
| ⊦ x ⊒ y ↔ (∃ z. z + y = x) |
| be0.l ≠ be1.l, be0 ≠ SF, be ' ⊒ [] + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0 = SF ∨ be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦ |
be0.l ≠ be1.l, be0 ≠ SF, be ' ⊒ be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ [] + x = x; (s)
| be0.l ≠ be1.l, be0 ≠ SF, be ' ⊒ be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l), ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), be = SF ∨ be.l = be1.l ⊦ |
⊦ x ⊒ y ↔ (∃ z. z + y = x)
be0.l ≠ be1.l, be0 ≠ SF, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), ∃ z. z + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l) = be ', be = SF ∨ be.l = be1.l ⊦
Used terms: be ', be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l)
| ⊦ x ⊒ y ↔ (∃ z. z + y = x) |
| be0.l ≠ be1.l, be0 ≠ SF, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be1 = SF ∨ be1.l = l ⊃ be1 ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l), ∃ z. z + be1 ' + bel0.filter(λ be. be = SF ∨ be.l = be1.l) = be ', be = SF ∨ be.l = be1.l ⊦ |
bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be = SF ∨ be.l = l ⊃ be ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + a ' + y = a0 ' ↔ x = [] ∧ a = a0 ∧ y = []; (ws)
| bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, ∀ l. (be = SF ∨ be.l = l ⊃ be ';[]) ⊒ (be0.l = l ⊃ be0 ';[]) + (be = SF ∨ be.l = l ⊃ be ';[]) + bel0.filter(λ be. be = SF ∨ be.l = l) ⊦ |
bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, (be = SF ∨ be.l = be0.l ⊃ be ';[]) ⊒ (be0.l = be0.l ⊃ be0 ';[]) + (be = SF ∨ be.l = be0.l ⊃ be ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦
Used terms: be0.l
| bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, (be = SF ∨ be.l = be0.l ⊃ be ';[]) ⊒ (be0.l = be0.l ⊃ be0 ';[]) + (be = SF ∨ be.l = be0.l ⊃ be ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦ |
bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, (be = SF ⊃ SF ';[]) ⊒ be0 ' + (be = SF ⊃ SF ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list
| bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be0.l ≠ be.l, be0 ≠ SF, (be = SF ⊃ SF ';[]) ⊒ be0 ' + (be = SF ⊃ SF ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦ |
bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be = SF, be0.l ≠ be.l, be0 ≠ SF, (be = SF ⊃ SF ';[]) ⊒ be0 ' + (be = SF ⊃ SF ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦
Used simplifier rules: ⊦ [] + x = x; (s) ⊦ [] ⊒ x ↔ x = []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a ' ≠ []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used formulas: be = SF
| bel0.filter(λ be0. be0 = SF ∨ be0.l = be.l) = [], be = SF, be0.l ≠ be.l, be0 ≠ SF, (be = SF ⊃ SF ';[]) ⊒ be0 ' + (be = SF ⊃ SF ';[]) + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦ |
bel0.filter(λ be. be.l = SF.l) = [], be0.l ≠ SF.l, be0 ≠ SF, SF ' ⊒ be0 ' + SF ' + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list
| bel0.filter(λ be. be.l = SF.l) = [], be0.l ≠ SF.l, be0 ≠ SF, SF ' ⊒ be0 ' + SF ' + bel0.filter(λ be. be = SF ∨ be.l = be0.l) ⊦ |
⊦ x ⊒ y ↔ (∃ z. z + y = x)
Used simplifier rules: ⊦ x + a ' + y = a0 ' ↔ x = [] ∧ a = a0 ∧ y = []; (ws) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: SF ', be0 ' + SF ' + bel0.filter(λ be. be = SF ∨ be.l = be0.l)
| ⊦ x ⊒ y ↔ (∃ z. z + y = x) |
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.