| ⊦ pendingOk(p) → pendingOk(p(l := p(l) + FO(t) ')) |
pendingOk(p), ¬ pendingOk(p(l := p(l) + FO(t) ')) ⊦
| pendingOk(p), ¬ pendingOk(p(l := p(l) + FO(t) ')) ⊦ |
#((l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0) ≠ 1, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: pendingOk: ⊦ pendingOk(p) ↔ (∀ l, t. #(p(l) |W | t) ≤ 1); ⊦ # x = 0 ↔ x = []; (s) ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s) ⊦ m ≤ n ↔ ¬ n < m; (ss)
| #((l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0) ≠ 1, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
l = l0, #((p(l0) + FO(t) ')|W | t0) ≠ 1, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
#(p(l0) |W | t0) ≠ 1, l ≠ l0, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| l = l0, #((p(l0) + FO(t) ')|W | t0) ≠ 1, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
#((p(l0) + FO(t) ')|W | t0) ≠ 1, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| #((p(l0) + FO(t) ')|W | t0) ≠ 1, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
t = t0, #((p(l0) + FO(t) ')|W | t0) ≠ 1, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
#((p(l0) + FO(t) ')|W | t0) ≠ 1, t ≠ t0, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used formulas: t = t0
| t = t0, #((p(l0) + FO(t) ')|W | t0) ≠ 1, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
#((p(l0) + FO(t0) ')|W | t0) ≠ 1, (p(l0) + FO(t0) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| #((p(l0) + FO(t0) ')|W | t0) ≠ 1, (p(l0) + FO(t0) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
# (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: (p(l0) + FO(t0) ')|W, t0
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| # (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
(p(l0) + FO(t0) ')|W.count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: ⊦ # x.filter(p) = x.count(p); (s)
| (p(l0) + FO(t0) ')|W.count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ')|W.filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ fowl |W = fowl.filter(λ fow. fow.W?)
(p(l0) + FO(t0) ').filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ').filter(λ fow. fow.W?).filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: p(l0) + FO(t0) '
| ⊦ fowl |W = fowl.filter(λ fow. fow.W?) |
| (p(l0) + FO(t0) ').filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t0) ').filter(λ fow. fow.W?).filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + [] = x; (s) ⊦ ¬ FO(tid).W?; (s) ⊦ a '.filter(p) = (p(a) ⊃ a ';[]); (s) ⊦ (x + y).filter(p) = x.filter(p) + y.filter(p); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], #(p(l0) |W | t0) ≤ 1 ⊦
Used terms: l0, t0
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], #(p(l0) |W | t0) ≤ 1 ⊦ |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], # p(l0) |W.filter(λ fow. fow.tid = t0) ≤ 1 ⊦
Used terms: p(l0) |W, t0
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], # p(l0) |W.filter(λ fow. fow.tid = t0) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], p(l0) |W.count(λ fow. fow.tid = t0) ≤ 1 ⊦
Used simplifier rules: ⊦ # x.filter(p) = x.count(p); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], p(l0) |W.count(λ fow. fow.tid = t0) ≤ 1 ⊦ |
⊦ fowl |W = fowl.filter(λ fow. fow.W?)
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], p(l0).filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≤ 1 ⊦
Used terms: p(l0)
| ⊦ fowl |W = fowl.filter(λ fow. fow.W?) |
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], p(l0).filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) = 0, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [] ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) = 0, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [] ⊦ |
⊦ x.count(p) = 0 ↔ x.filter(p) = []
Used terms: p(l0).filter(.W?), λ fow. fow.tid = t0
| ⊦ x.count(p) = 0 ↔ x.filter(p) = [] |
| #((p(l0) + FO(t) ')|W | t0) ≠ 1, t ≠ t0, (p(l0) + FO(t) ')|W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
# (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: (p(l0) + FO(t) ')|W, t0
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| # (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
(p(l0) + FO(t) ')|W.count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: ⊦ # x.filter(p) = x.count(p); (s)
| (p(l0) + FO(t) ')|W.count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ')|W.filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ fowl |W = fowl.filter(λ fow. fow.W?)
(p(l0) + FO(t) ').filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ').filter(λ fow. fow.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: p(l0) + FO(t) '
| ⊦ fowl |W = fowl.filter(λ fow. fow.W?) |
| (p(l0) + FO(t) ').filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≠ 1, (p(l0) + FO(t) ').filter(λ fow. fow.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + [] = x; (s) ⊦ ¬ FO(tid).W?; (s) ⊦ a '.filter(p) = (p(a) ⊃ a ';[]); (s) ⊦ (x + y).filter(p) = x.filter(p) + y.filter(p); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, #(p(l0) |W | t0) ≤ 1 ⊦
Used terms: l0, t0
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, #(p(l0) |W | t0) ≤ 1 ⊦ |
⊦ fowl | t = fowl.filter(λ fow. fow.tid = t)
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, # p(l0) |W.filter(λ fow. fow.tid = t0) ≤ 1 ⊦
Used terms: p(l0) |W, t0
| ⊦ fowl | t = fowl.filter(λ fow. fow.tid = t) |
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, # p(l0) |W.filter(λ fow. fow.tid = t0) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, p(l0) |W.count(λ fow. fow.tid = t0) ≤ 1 ⊦
Used simplifier rules: ⊦ # x.filter(p) = x.count(p); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, p(l0) |W.count(λ fow. fow.tid = t0) ≤ 1 ⊦ |
⊦ fowl |W = fowl.filter(λ fow. fow.W?)
p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, p(l0).filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≤ 1 ⊦
Used terms: p(l0)
| ⊦ fowl |W = fowl.filter(λ fow. fow.W?) |
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) ≠ 1, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0, p(l0).filter(λ fow. fow.W?).count(λ fow. fow.tid = t0) ≤ 1 ⊦ |
p(l0).filter(.W?).count(λ fow. fow.tid = t0) = 0, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0 ⊦
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s) ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)
| p(l0).filter(.W?).count(λ fow. fow.tid = t0) = 0, p(l0).filter(.W?).filter(λ fow. fow.tid = t0) ≠ [], t ≠ t0 ⊦ |
⊦ x.count(p) = 0 ↔ x.filter(p) = []
Used terms: p(l0).filter(.W?), λ fow. fow.tid = t0
| ⊦ x.count(p) = 0 ↔ x.filter(p) = [] |
| #(p(l0) |W | t0) ≠ 1, l ≠ l0, (l = l0 ⊃ p(l0) + FO(t) ';p(l0)) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
#(p(l0) |W | t0) ≠ 1, l ≠ l0, p(l0) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| #(p(l0) |W | t0) ≠ 1, l ≠ l0, p(l0) |W | t0 ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
Used simplifier rules: ⊦ m ≠ n → (m ≤ n ↔ m < n); (s) ⊦ m < 1 ↔ m = 0; (s) ⊦ # x = 0 ↔ x = []; (s) Used terms: l0, t0
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.