| ⊦ reorder(p, pq, rfo) ∧ noPending(t, p) → reorder(p(l := p(l) + W(v, t) '), pq(l := pq(l) + W(v, t) '), rfo) |
noPending(t, p), reorder(p, pq, rfo), ¬ reorder(p(l := p(l) + W(v, t) '), pq(l := pq(l) + W(v, t) '), rfo) ⊦
| noPending(t, p), reorder(p, pq, rfo), ¬ reorder(p(l := p(l) + W(v, t) '), pq(l := pq(l) + W(v, t) '), rfo) ⊦ |
noPending(t, p), ¬ reorder(l0, (l = l0 ⊃ p(l0) + W(v, t) ';p(l0)), (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
Used simplifier rules: reorder-def: ⊦ reorder(p, pq, rfo) ↔ (∀ l. reorder(l, p(l), pq(l), rfo));
| noPending(t, p), ¬ reorder(l0, (l = l0 ⊃ p(l0) + W(v, t) ';p(l0)), (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
l = l0, noPending(t, p), ¬ reorder(l0, p(l0) + W(v, t) ', (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
l ≠ l0, noPending(t, p), ¬ reorder(l0, p(l0), (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| l = l0, noPending(t, p), ¬ reorder(l0, p(l0) + W(v, t) ', (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
noPending(t, p), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| noPending(t, p), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦
Used terms: l0
| noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦ |
⊦ reorder(l, fowl0, fowl1, rfo) ∧ fowl0 | t = [] → reorder(l, fowl0 + W(v, t) ', fowl1 + W(v, t) ', rfo)
noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦ reorder(l0, p(l0), pq(l0), rfo) ∧ p(l0) | t = []
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: v, l0, p(l0), rfo, t, pq(l0)
| ⊦ reorder(l, fowl0, fowl1, rfo) ∧ fowl0 | t = [] → reorder(l, fowl0 + W(v, t) ', fowl1 + W(v, t) ', rfo) |
| noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦ reorder(l0, p(l0), pq(l0), rfo) ∧ p(l0) | t = [] |
p(l0) | t ≠ [], noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦
| p(l0) | t ≠ [], noPending(t, p), reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo) ⊦ |
⊦ noPending(t, p) ↔ (∀ l. p(l) | t = [])
p(l0) | t ≠ [], reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo), ∀ l. p(l) | t = [] ⊦
Used terms: t, p
| ⊦ noPending(t, p) ↔ (∀ l. p(l) | t = []) |
| p(l0) | t ≠ [], reorder(l0, p(l0), pq(l0), rfo), ¬ reorder(l0, p(l0) + W(v, t) ', pq(l0) + W(v, t) ', rfo), ∀ l. p(l) | t = [] ⊦ |
Used terms: l0
| l ≠ l0, noPending(t, p), ¬ reorder(l0, p(l0), (l = l0 ⊃ pq(l0) + W(v, t) ';pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
l ≠ l0, noPending(t, p), ¬ reorder(l0, p(l0), pq(l0), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| l ≠ l0, noPending(t, p), ¬ reorder(l0, p(l0), pq(l0), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
Used terms: l0
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.