| ⊦ pendingOk(bq, pq) ∧ pq(l) = fow ' + fowl → pendingOk(bq, pq(l := fowl)) |
pq(l) = fow ' + fowl, pendingOk(bq, pq), ¬ pendingOk(bq, pq(l := fowl)) ⊦
| pq(l) = fow ' + fowl, pendingOk(bq, pq), ¬ pendingOk(bq, pq(l := fowl)) ⊦ |
pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1
Used simplifier rules: pendingOk: ⊦ pendingOk(bq, p) ↔ (∀ l, t. #(p(l) |W | t) + #(bq(t) |WL l) ≤ 1); a: ⊦ (x + y) + z = x + y + z; from specification list in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ # x = 0 ↔ x = []; (s) ⊦ m + n = 1 ↔ m = 0 ∧ n = 1 ∨ n = 0 ∧ m = 1; (ws) ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s) ⊦ m ≤ n ↔ ¬ n < m; (ss)
| pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1 |
l = l0, pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1, (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1
pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1, (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1
Used formulas: l = l0
| l = l0, pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1, (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1 |
pq(l0) = fow ' + fowl, #(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l0), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list
| pq(l0) = fow ' + fowl, #(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l0), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1 |
pq(l0) = fow ' + fowl, #(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l0), #(pq(l0) |W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1, fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1
Used terms: l0, t
| pq(l0) = fow ' + fowl, #(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ pq(l0), #(pq(l0) |W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1, fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1 |
#(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ fow ' + fowl, #((fow ' + fowl)|W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1
| #(fowl |W | t) + #(bq(t) |WL l0) ≠ 0, fow ∈ fow ' + fowl, #((fow ' + fowl)|W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1 |
#(fowl |W | t) + #(bq(t) |WL l0) = 1, fow ' |W | t = [], ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ a0 ' + x ↔ a = a0 ∨ a ∈ x; (s) c: ⊦ m + n = n + m; from specification nat-basic a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic ⊦ # x = 0 ↔ x = []; (s) ⊦ m ≠ 0 → (m + n ≤ 1 ↔ m = 1 ∧ n = 0); (ws) ⊦ #(x + y) = # x + # y; (s) ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t); (s) ⊦ (fowl + fowl0)|W = fowl |W + fowl0 |W; (s)
| #(fowl |W | t) + #(bq(t) |WL l0) = 1, fow ' |W | t = [], ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ fowl |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(fowl |W | t) = 1 |
⊦ # x ≤ 1 ∧ x ≠ [] → # x = 1
Used simplifier rules: ⊦ n ≠ 0 → (m + n = 1 ↔ n = 1 ∧ m = 0); (ws) ⊦ # x = 0 ↔ x = []; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s) ⊦ m ≠ 1 → (m + n = 1 ↔ m = 0 ∧ n = 1); (ws) ⊦ # x = 1 ↔ x = x.head + []; (as) ⊦ a + x = a ' + x; (s) ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m ≠ n → (m ≤ n ↔ m < n); (s) ⊦ m < 1 ↔ m = 0; (s) ⊦ a ' ≠ []; (s) Used terms: bq(t) |WL l0
| ⊦ # x ≤ 1 ∧ x ≠ [] → # x = 1 |
| pq(l) = fow ' + fowl, #((l = l0 ⊃ fowl;pq(l0)) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #((l = l0 ⊃ fowl;pq(l0)) |W | t) = 1, (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ #(bq(t) |WL l0) = 1 |
pq(l) = fow ' + fowl, #(pq(l0) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1
| pq(l) = fow ' + fowl, #(pq(l0) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1, bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1 |
pq(l) = fow ' + fowl, #(pq(l0) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), #(pq(l0) |W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1, pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1
Used terms: l0, t
| pq(l) = fow ' + fowl, #(pq(l0) |W | t) + #(bq(t) |WL l0) ≠ 0, l ≠ l0, fow ∈ pq(l), #(pq(l0) |W | t) + #(bq(t) |WL l0) ≤ 1, ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1, pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1 |
#(pq(l0) |W | t) + #(bq(t) |WL l0) = 1, pq(l) = fow ' + fowl, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1, pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1
Used simplifier rules: ⊦ m ≠ 0 → (m ≤ 1 ↔ m = 1); (s)
| #(pq(l0) |W | t) + #(bq(t) |WL l0) = 1, pq(l) = fow ' + fowl, l ≠ l0, fow ∈ pq(l), ∀ l, t. #(pq(l) |W | t) + #(bq(t) |WL l) ≤ 1 ⊦ bq(t) |WL l0 = [] ∧ #(pq(l0) |W | t) = 1, pq(l0) |W | t = [] ∧ #(bq(t) |WL l0) = 1 |
⊦ # x ≤ 1 ∧ x ≠ [] → # x = 1
Used simplifier rules: ⊦ n ≠ 0 → (m + n = 1 ↔ n = 1 ∧ m = 0); (ws) ⊦ # x = 0 ↔ x = []; (s) a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic c: ⊦ m + n = n + m; from specification nat-basic ⊦ m ≤ n ↔ ¬ n < m; (ss) ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s) ⊦ m ≠ 1 → (m + n = 1 ↔ m = 0 ∧ n = 1); (ws) ⊦ # x = 1 ↔ x = x.head + []; (as) ⊦ a + x = a ' + x; (s) ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ m ≠ n → (m ≤ n ↔ m < n); (s) ⊦ m < 1 ↔ m = 0; (s) ⊦ a ' ≠ []; (s) Used terms: bq(t) |WL l0
| ⊦ # x ≤ 1 ∧ x ≠ [] → # x = 1 |
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.