| ⊦ rely(t, p0, p1) ∧ pendingOk(p) ∧ onePendingW(t, l, p0) → onePendingW(t, l, p1) |
onePendingW(t, l, p0), pendingOk(p), rely(t, p0, p1), ¬ onePendingW(t, l, p1) ⊦
| onePendingW(t, l, p0), pendingOk(p), rely(t, p0, p1), ¬ onePendingW(t, l, p1) ⊦ |
onePendingW(t, l, p0), pendingOk(p), ¬ onePendingW(t, l, p1), ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [] ⊦
Used simplifier rules: allrely-def: ⊦ rely(t, p, p0) ↔ (∀ l. rely(t, p(l), p0(l))); rely-def: ⊦ rely(t, fowl, fowl0) ↔ (∃ fowl1, fowl2. fowl ⊒W fowl1 ∧ fowl0 = fowl1 + fowl2 ∧ fowl2 | t = []); weak-write-postfix: ⊦ fowl0 ⊒W fowl1 ↔ (∃ fowl2, fowl3, fowl4, fowl5. fowl0 = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4);
| onePendingW(t, l, p0), pendingOk(p), ¬ onePendingW(t, l, p1), ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [] ⊦ |
⊦ onePendingW(t, l, p) ↔ (∀ l0. l0 ≠ l → p(l0) |W | t = [])
pendingOk(p), ¬ onePendingW(t, l, p1), ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [] ⊦
Used terms: t, l, p0
| ⊦ onePendingW(t, l, p) ↔ (∀ l0. l0 ≠ l → p(l0) |W | t = []) |
| pendingOk(p), ¬ onePendingW(t, l, p1), ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [] ⊦ |
⊦ pendingOk(p) ↔ (∀ l, t. #(p(l) |W | t) ≤ 1)
¬ onePendingW(t, l, p1), ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: p
| ⊦ pendingOk(p) ↔ (∀ l, t. #(p(l) |W | t) ≤ 1) |
| ¬ onePendingW(t, l, p1), ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ onePendingW(t, l, p) ↔ (∀ l0. l0 ≠ l → p(l0) |W | t = [])
∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ l0. ¬(l0 ≠ l → p1(l0) |W | t = []) ⊦
Used terms: t, l, p1
| ⊦ onePendingW(t, l, p) ↔ (∀ l0. l0 ≠ l → p(l0) |W | t = []) |
| ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ l0. ¬(l0 ≠ l → p1(l0) |W | t = []) ⊦ |
l0 ≠ l, p1(l0) |W | t ≠ [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| l0 ≠ l, p1(l0) |W | t ≠ [], ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l0. ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
l0 ≠ l, p1(l0) |W | t ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [] ⊦
Used terms: l0
| l0 ≠ l, p1(l0) |W | t ≠ [], ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ fowl1, fowl2. (∃ fowl2, fowl3, fowl4, fowl5. p0(l0) = fowl2 + fowl3 + fowl4 ∧ fowl5 ⊆ fowl3 |FO ∧ fowl1 = fowl5 + fowl4) ∧ p1(l0) = fowl1 + fowl2 ∧ fowl2 | t = [] ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t = [], l0 ≠ l, p1(l0) |W | t ≠ [], fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t = [], l0 ≠ l, p1(l0) |W | t ≠ [], fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t = [], l0 ≠ l, fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ a. a ∈ p1(l0) |W | t ⊦
Used terms: p1(l0) |W | t
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t = [], l0 ≠ l, fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t = [], ∃ a. a ∈ p1(l0) |W | t ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | fow.tid = [], l0 ≠ l, fow.W?, fow ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | fow.tid = [] ⊦
Used simplifier rules: ⊦ fow ∈ fowl |W ↔ fow ∈ fowl ∧ fow.W?; (s) ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t; (s)
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | fow.tid = [], l0 ≠ l, fow.W?, fow ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | fow.tid = [] ⊦ |
fow = W(v, t0), p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t0 = [], l0 ≠ l, fow.W?, fow ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: ⊦ fow.W? → (val = fow.val ∧ tid = fow.tid ↔ fow = W(val, tid)); (elim) Used terms: fow, v, t0
| fow = W(v, t0), p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t0 = [], l0 ≠ l, fow.W?, fow ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t0 = [], l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [] ⊦
Used simplifier rules: ⊦ W(v, tid).W?; (s)
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, fowl2 | t0 = [], l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [] ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl2 | t0 ⊦
Used terms: fowl2 | t0
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl2 | t0 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ a. ¬ a ∈ fowl2 ∨ a.tid ≠ t0 ⊦
Used simplifier rules: ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t; (s)
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ a. ¬ a ∈ fowl2 ∨ a.tid ≠ t0 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1, ¬ W(v, t0) ∈ fowl2 ∨ W(v, t0).tid ≠ t0 ⊦
Used terms: W(v, t0)
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1, ¬ W(v, t0) ∈ fowl2 ∨ W(v, t0).tid ≠ t0 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [] ⊦
Used simplifier rules: ⊦ W(v, tid).tid = tid; (s)
| p0(l0) = fowl + fowl3 + fowl4, p1(l0) = (fowl5 + fowl4) + fowl2, l0 ≠ l, W(v, t0) ∈ p1(l0), fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [] ⊦ |
p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ (fowl5 + fowl4) + fowl2, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ (fowl5 + fowl4) + fowl2, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: ⊦ ¬ W(v, tid).FO?; (s) ⊦ fow ∈ fowl |FO ↔ fow ∈ fowl ∧ fow.FO?; (s) sub-in: ⊦ x ⊆ y ∧ a ∈ x → a ∈ y; (forward) from specification list-set a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)
| p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l0. l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used terms: l0
| p0(l0) = fowl + fowl3 + fowl4, l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, l0 ≠ l → p0(l0) |W | t0 = [], ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
p0(l0) = fowl + fowl3 + fowl4, p0(l0) |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| p0(l0) = fowl + fowl3 + fowl4, p0(l0) |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
(fowl + fowl3 + fowl4)|W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
| (fowl + fowl3 + fowl4)|W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
fowl |W | t0 = [], fowl3 |W | t0 = [], fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t); (s) ⊦ (fowl + fowl0)|W = fowl |W + fowl0 |W; (s)
| fowl |W | t0 = [], fowl3 |W | t0 = [], fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
fowl4 |W | t0 = [], fowl3 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl |W | t0 ⊦
Used terms: fowl |W | t0
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| fowl4 |W | t0 = [], fowl3 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl |W | t0 ⊦ |
fowl3 |W | t0 = [], fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦
Used simplifier rules: ⊦ fow ∈ fowl |W ↔ fow ∈ fowl ∧ fow.W?; (s) ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t; (s)
| fowl3 |W | t0 = [], fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl3 |W | t0 ⊦
Used terms: fowl3 |W | t0
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl3 |W | t0 ⊦ |
fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦
Used simplifier rules: ⊦ fow ∈ fowl |W ↔ fow ∈ fowl ∧ fow.W?; (s) ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t; (s)
| fowl4 |W | t0 = [], l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦ |
⊦ x = [] ↔ ¬(∃ a. a ∈ x)
l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl4 |W | t0 ⊦
Used terms: fowl4 |W | t0
| ⊦ x = [] ↔ ¬(∃ a. a ∈ x) |
| l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl4 |W | t0 ⊦ |
l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl4 ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦
Used simplifier rules: ⊦ fow ∈ fowl |W ↔ fow ∈ fowl ∧ fow.W?; (s) ⊦ fow ∈ fowl | t ↔ fow ∈ fowl ∧ fow.tid = t; (s)
| l0 ≠ l, W(v, t0) ∈ fowl4, fowl5 ⊆ fowl3 |FO, ¬ W(v, t0) ∈ fowl2, ¬ W(v, t0) ∈ fowl5, ∀ l, t. #(p(l) |W | t) ≤ 1, ∀ a. ¬ a ∈ fowl ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl3 ∨ ¬ a.W? ∨ a.tid ≠ t0, ∀ a. ¬ a ∈ fowl4 ∨ ¬ a.W? ∨ a.tid ≠ t0 ⊦ |
Used simplifier rules: ⊦ W(v, tid).W?; (s) ⊦ W(v, tid).tid = tid; (s) Used terms: W(v, 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.