| ⊦ reorder(p, pq, rfo) ∧ pq(l) = FO(t) ' + fowl ∧ isPersistFO(n, p(l)) ∧ p(l)[n] = FO(t) → reorder(p(l := p(l) -p n), pq(l := fowl), rfo) |
p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), reorder(p, pq, rfo), ¬ reorder(p(l := p(l) -p n), pq(l := fowl), rfo) ⊦
| p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), reorder(p, pq, rfo), ¬ reorder(p(l := p(l) -p n), pq(l := fowl), rfo) ⊦ |
p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, (l = l0 ⊃ p(l0) -p n;p(l0)), (l = l0 ⊃ fowl;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)); a: ⊦ (x + y) + z = x + y + z; from specification list in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list
| p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, (l = l0 ⊃ p(l0) -p n;p(l0)), (l = l0 ⊃ fowl;pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
p(l)[n] = FO(t), l = l0, pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, p(l0) -p n, (l = l0 ⊃ fowl;pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, l ≠ l0, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, p(l0), (l = l0 ⊃ fowl;pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| p(l)[n] = FO(t), l = l0, pq(l) = FO(t) ' + fowl, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, p(l0) -p n, (l = l0 ⊃ fowl;pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list in-14: ⊦ a ' + x = y → a ∈ y; (forward) from specification list
| p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
⊦ reorder(l, fowl0, FO(t) ' + fowl1, rfo) ∧ isPersistFO(n, fowl0) ∧ fowl0[n] = FO(t) → reorder(l, fowl0 -p n, fowl1, rfo)
p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ reorder(l0, p(l0), FO(t) ' + fowl, rfo) ∧ isPersistFO(n, p(l0)) ∧ p(l0)[n] = FO(t)
Used terms: l0, p(l0), rfo, t, n, fowl
| ⊦ reorder(l, fowl0, FO(t) ' + fowl1, rfo) ∧ isPersistFO(n, fowl0) ∧ fowl0[n] = FO(t) → reorder(l, fowl0 -p n, fowl1, rfo) |
| p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ reorder(l0, p(l0), FO(t) ' + fowl, rfo) ∧ isPersistFO(n, p(l0)) ∧ p(l0)[n] = FO(t) |
p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ¬ reorder(l0, p(l0), pq(l0), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| p(l0)[n] = FO(t), pq(l0) = FO(t) ' + fowl, isPersistFO(n, p(l0)), FO(t) ∈ pq(l0), ¬ reorder(l0, p(l0) -p n, fowl, rfo), ¬ reorder(l0, p(l0), pq(l0), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
Used terms: l0
| p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, l ≠ l0, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, p(l0), (l = l0 ⊃ fowl;pq(l0)), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦ |
p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, l ≠ l0, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ reorder(l0, p(l0), pq(l0), rfo), ∀ l. reorder(l, p(l), pq(l), rfo) ⊦
| p(l)[n] = FO(t), pq(l) = FO(t) ' + fowl, l ≠ l0, isPersistFO(n, p(l)), FO(t) ∈ pq(l), ¬ 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.