| ⊦ writersOk(bq, pq, writers) ∧ pq(l) = fow ' + fowl → writersOk(bq, pq(l := fowl), writers) |
pq(l) = fow ' + fowl, writersOk(bq, pq, writers), ¬ writersOk(bq, pq(l := fowl), writers) ⊦
| pq(l) = fow ' + fowl, writersOk(bq, pq, writers), ¬ writersOk(bq, pq(l := fowl), writers) ⊦ |
pq(l) = fow ' + fowl, fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ (t ∈ writers(l0) → l1 ≠ l0 → ¬ t ∈ writers(l1)) ∧ (¬ t ∈ writers(l0) → (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ bq(t) |WL l0 = [])
Used simplifier rules: writersOk: ⊦ writersOk(bq, p, writers) ↔ (∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → p(l) |W | t = [] ∧ bq(t) |WL l = [])); a: ⊦ (x + y) + z = x + y + z; from specification list in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list
| pq(l) = fow ' + fowl, fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ (t ∈ writers(l0) → l1 ≠ l0 → ¬ t ∈ writers(l1)) ∧ (¬ t ∈ writers(l0) → (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ bq(t) |WL l0 = []) |
pq(l) = fow ' + fowl, l1 ≠ l0, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
pq(l) = fow ' + fowl, fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ bq(t) |WL l0 = []
| pq(l) = fow ' + fowl, l1 ≠ l0, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic
| pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, fow ∈ pq(l), t ∈ writers(l0), t ∈ writers(l1), t ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1)), ¬ t ∈ writers(l0) → pq(l0) |W | t = [] ∧ bq(t) |WL l0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
Used terms: l0, t
| pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, fow ∈ pq(l), t ∈ writers(l0), t ∈ writers(l1), t ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1)), ¬ t ∈ writers(l0) → pq(l0) |W | t = [] ∧ bq(t) |WL l0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []), ∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1) ⊦
| pq(l) = fow ' + fowl, # writers(l1) ≠ 0, # writers(l0) ≠ 0, l1 ≠ l0, writers(l1) ≠ ∅, writers(l0) ≠ ∅, t ∈ writers(l1), t ∈ writers(l0), fow ∈ pq(l), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []), ∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1) ⊦ |
Used terms: l1
| pq(l) = fow ' + fowl, fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ (l = l0 ⊃ fowl;pq(l0)) |W | t = [] ∧ bq(t) |WL l0 = [] |
pq(l) = fow ' + fowl, (l = l0 ⊃ fowl;pq(l0)) |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
pq(l) = fow ' + fowl, bq(t) |WL l0 ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
| pq(l) = fow ' + fowl, (l = l0 ⊃ fowl;pq(l0)) |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
l = l0, pq(l) = fow ' + fowl, fowl |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
pq(l) = fow ' + fowl, l ≠ l0, pq(l0) |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
| l = l0, pq(l) = fow ' + fowl, fowl |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l0) = fow ' + fowl, fowl |W | t ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
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 ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l0) = fow ' + fowl, fowl |W | t ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), t ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1)), ¬ t ∈ writers(l0) → pq(l0) |W | t = [] ∧ bq(t) |WL l0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
Used terms: l0, t
| pq(l0) = fow ' + fowl, fowl |W | t ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), t ∈ writers(l0) → (∀ l1. l1 ≠ l0 → ¬ t ∈ writers(l1)), ¬ t ∈ writers(l0) → pq(l0) |W | t = [] ∧ bq(t) |WL l0 = [], ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l0) = fow ' + fowl, pq(l0) |W | t = [], bq(t) |WL l0 = [], fowl |W | t ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
| pq(l0) = fow ' + fowl, pq(l0) |W | t = [], bq(t) |WL l0 = [], fowl |W | t ≠ [], fow ∈ pq(l0), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
pq(l0) = fow ' + fowl, (fow ' + fowl)|W | t = [], bq(t) |WL l0 = [], fowl |W | t ≠ [], fow ∈ fow ' + fowl, ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦
| pq(l0) = fow ' + fowl, (fow ' + fowl)|W | t = [], bq(t) |WL l0 = [], fowl |W | t ≠ [], fow ∈ fow ' + fowl, ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
⊦ (fowl + fowl0)|W = fowl |W + fowl0 |W
Used simplifier rules: ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t); (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: fow ', fowl
| ⊦ (fowl + fowl0)|W = fowl |W + fowl0 |W |
| pq(l) = fow ' + fowl, l ≠ l0, pq(l0) |W | t ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
Used terms: l0, t
| pq(l) = fow ' + fowl, bq(t) |WL l0 ≠ [], fow ∈ pq(l), ¬ t ∈ writers(l0), ∀ l, t. (t ∈ writers(l) → (∀ l0. l0 ≠ l → ¬ t ∈ writers(l0))) ∧ (¬ t ∈ writers(l) → pq(l) |W | t = [] ∧ bq(t) |WL l = []) ⊦ |
Used terms: l0, t
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.