| ⊦ reorder(l, fowl0, fowl1, rfo) ∧ rfo(t) = [] → reorder(l, fowl0 + FO(t) ', fowl1 + FO(t) ', rfo) |
rfo(t) = [], reorder(l, fowl0, fowl1, rfo), ¬ reorder(l, fowl0 + FO(t) ', fowl1 + FO(t) ', rfo) ⊦
| rfo(t) = [], reorder(l, fowl0, fowl1, rfo), ¬ reorder(l, fowl0 + FO(t) ', fowl1 + FO(t) ', rfo) ⊦ |
rfo(t) = [], reorder(l, [], fowl1, rfo), ¬ reorder(l, [] + FO(t) ', fowl1 + FO(t) ', rfo) ⊦
rfo(t) = [], reorder(l, fow + fowl, fowl1, rfo), ¬ reorder(l, (fow + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo, t, l, fowl1. ¬(rfo(t) = [] ∧ reorder(l, fowl, fowl1, rfo) ∧ ¬ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo)) ⊦
Used simplifier rules: List('a) freely generated by [], +;;
| rfo(t) = [], reorder(l, [], fowl1, rfo), ¬ reorder(l, [] + FO(t) ', fowl1 + FO(t) ', rfo) ⊦ |
rfo(t) = [], ¬ reorder(l, FO(t) ', FO(t) ', rfo), ∀ t. propFOs(t, l, rfo(t)) = [] ⊦
Used simplifier rules: reorder-base: ⊦ reorder(l, [], fowl0, rfo) ↔ fowl0 = [] ∧ (∀ t. propFOs(t, l, rfo(t)) = []); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ [] + x = x; (s)
| rfo(t) = [], ¬ reorder(l, FO(t) ', FO(t) ', rfo), ∀ t. propFOs(t, l, rfo(t)) = [] ⊦ |
⊦ reorder(l, FO(t) ' + fowl, fowl0, rfo) ↔ (∃ fowl1, fowl2. fowl0 = fowl1 + FO(t) ' + fowl2 ∧ fowl1 | t = [] ∧ reorder(l, fowl, fowl1 + fowl2, rfo)) ∨ fowl0 | t = [] ∧ FO(l) ∈ rfo(t) ∧ reorder(l, fowl, fowl0, rfo(t := rfo(t) -1l FO(l)))
Used simplifier rules: reorder-base: ⊦ reorder(l, [], fowl0, rfo) ↔ fowl0 = [] ∧ (∀ t. propFOs(t, l, rfo(t)) = []); ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ [] + x = x; (s) ⊦ a ' = a0 ' ↔ a = a0; (s) ⊦ [] | t = []; (s) ⊦ x + [] = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: [], l, FO(t) ', rfo, t
| ⊦ reorder(l, FO(t) ' + fowl, fowl0, rfo) ↔ (∃ fowl1, fowl2. fowl0 = fowl1 + FO(t) ' + fowl2 ∧ fowl1 | t = [] ∧ reorder(l, fowl, fowl1 + fowl2, rfo)) ∨ fowl0 | t = [] ∧ FO(l) ∈ rfo(t) ∧ reorder(l, fowl, fowl0, rfo(t := rfo(t) -1l FO(l))) |
| rfo(t) = [], reorder(l, fow + fowl, fowl1, rfo), ¬ reorder(l, (fow + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo, t, l, fowl1. ¬(rfo(t) = [] ∧ reorder(l, fowl, fowl1, rfo) ∧ ¬ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo)) ⊦ |
rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s)
| rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
fow = FO(t1), rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
fow = W(v, t1), rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
Used simplifier rules: FOW freely generated by FO, W;;
| fow = FO(t1), rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
rfo(t) = [], ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0), fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo) ∨ fowl1 | t1 = [] ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l)))
Used simplifier rules: reorder-rec-FO: ⊦ reorder(l, FO(t) ' + fowl, fowl0, rfo) ↔ (∃ fowl1, fowl2. fowl0 = fowl1 + FO(t) ' + fowl2 ∧ fowl1 | t = [] ∧ reorder(l, fowl, fowl1 + fowl2, rfo)) ∨ fowl0 | t = [] ∧ FO(l) ∈ rfo(t) ∧ reorder(l, fowl, fowl0, rfo(t := rfo(t) -1l FO(l))); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ' ≠ []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ FO(tid).tid = tid; (s) ⊦ fow ' | t = (t = fow.tid ⊃ fow ';[]); (s) ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t); (s)
| rfo(t) = [], ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0), fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo) ∨ fowl1 | t1 = [] ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l))) |
fowl1 = fowl2 + FO(t1) ' + fowl3, rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l)))
rfo(t) = [], fowl1 | t1 = [], reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l)))
| fowl1 = fowl2 + FO(t1) ' + fowl3, rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l))) |
rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo)
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ' ≠ []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ FO(tid).tid = tid; (s) ⊦ fow ' | t = (t = fow.tid ⊃ fow ';[]); (s) ⊦ fowl + fowl0 | t = (fowl | t) + (fowl0 | t); (s)
| rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo) |
rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0), rfo(t) ≠ [] ∨ ¬ reorder(l, fowl, fowl2 + fowl3, rfo) ∨ reorder(l, fowl + FO(t) ', (fowl2 + fowl3) + FO(t) ', rfo) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo)
Used terms: rfo, t, l, fowl2 + fowl3
| rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0), rfo(t) ≠ [] ∨ ¬ reorder(l, fowl, fowl2 + fowl3, rfo) ∨ reorder(l, fowl + FO(t) ', (fowl2 + fowl3) + FO(t) ', rfo) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo) |
rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), reorder(l, fowl + FO(t) ', (fowl2 + fowl3) + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo)
| rfo(t) = [], fowl2 | t1 = [], reorder(l, fowl, fowl2 + fowl3, rfo), reorder(l, fowl + FO(t) ', (fowl2 + fowl3) + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl0, fowl4. (fowl2 + FO(t1) ' + fowl3) + FO(t) ' = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl0 + fowl4, rfo) |
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: fowl2, fowl3 + FO(t) '
| rfo(t) = [], fowl1 | t1 = [], reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), fowl1 | t1 = [] ∧ t1 ≠ t ∧ FO(l) ∈ rfo(t1) ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l))) |
rfo(t) = [], fowl1 | t1 = [], reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), t1 ≠ t ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l)))
| rfo(t) = [], fowl1 | t1 = [], reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ ∃ fowl2, fowl3. fowl1 + FO(t) ' = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl + FO(t) ', fowl2 + fowl3, rfo), t1 ≠ t ∧ reorder(l, fowl + FO(t) ', fowl1 + FO(t) ', rfo(t1 := rfo(t1) -1l FO(l))) |
Used simplifier rules: ⊦ [] -1l a = []; (s) ⊦ ¬ a ∈ []; (s) Used terms: rfo(t1 := rfo(t1) -1l FO(l)), t, l, fowl1
| fow = W(v, t1), rfo(t) = [], reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, (fow ' + fowl) + FO(t) ', fowl1 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
fowl1.head = W(v, t1), rfo(t) = [], fowl1 ≠ [], reorder(l, fowl, fowl1.tail, rfo), ¬ reorder(l, fowl + FO(t) ', fowl1.tail + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
Used simplifier rules: reorder-rec-W: ⊦ reorder(l, W(v, t) ' + fowl0, fowl1, rfo) ↔ fowl1 ≠ [] ∧ fowl1.head = W(v, t) ∧ reorder(l, fowl0, fowl1.tail, rfo); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x ≠ [] → (x + y).tail = x.tail + y; (s) ⊦ x ≠ [] → (x + y).head = x.head; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s)
| fowl1.head = W(v, t1), rfo(t) = [], fowl1 ≠ [], reorder(l, fowl, fowl1.tail, rfo), ¬ reorder(l, fowl + FO(t) ', fowl1.tail + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
fow = W(v, t1), fowl1 = fow + fowl2, rfo(t) = [], fowl1 ≠ [], reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl + FO(t) ', fowl2 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
Used simplifier rules: ⊦ x ≠ [] → (head = x.head ∧ tail = x.tail ↔ x = head + tail); (elim) Used terms: fowl1, fow, fowl2
| fow = W(v, t1), fowl1 = fow + fowl2, rfo(t) = [], fowl1 ≠ [], reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl + FO(t) ', fowl2 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
rfo(t) = [], reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl + FO(t) ', fowl2 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a ' ≠ []; (s) ⊦ x + y = [] ↔ x = [] ∧ y = []; (s) ⊦ a + x = a ' + x; (s)
| rfo(t) = [], reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl + FO(t) ', fowl2 + FO(t) ', rfo), ∀ rfo0, t0, l0, fowl0. rfo0(t0) ≠ [] ∨ ¬ reorder(l0, fowl, fowl0, rfo0) ∨ reorder(l0, fowl + FO(t0) ', fowl0 + FO(t0) ', rfo0) ⊦ |
Used terms: rfo, t, l, fowl2
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.