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