| ⊦ reorder(l, fowl0, fowl1, rfo) ∧ l0 ≠ l → reorder(l, fowl0, fowl1, rfo(t := rfo(t) -1l FO(l0))) |
l0 ≠ l, reorder(l, fowl0, fowl1, rfo), ¬ reorder(l, fowl0, fowl1, rfo(t := rfo(t) -1l FO(l0))) ⊦
| l0 ≠ l, reorder(l, fowl0, fowl1, rfo), ¬ reorder(l, fowl0, fowl1, rfo(t := rfo(t) -1l FO(l0))) ⊦ |
l0 ≠ l, reorder(l, [], fowl1, rfo), ¬ reorder(l, [], fowl1, rfo(t := rfo(t) -1l FO(l0))) ⊦
l0 ≠ l, reorder(l, fow + fowl, fowl1, rfo), ¬ reorder(l, fow + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l0, l, fowl1, rfo, t. ¬(l0 ≠ l ∧ reorder(l, fowl, fowl1, rfo) ∧ ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0)))) ⊦
Used simplifier rules: List('a) freely generated by [], +;;
| l0 ≠ l, reorder(l, [], fowl1, rfo), ¬ reorder(l, [], fowl1, rfo(t := rfo(t) -1l FO(l0))) ⊦ |
l0 ≠ l, propFOs(t0, l, (t = t0 ⊃ rfo(t0) -1l FO(l0);rfo(t0))) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦
Used simplifier rules: reorder-base: ⊦ reorder(l, [], fowl0, rfo) ↔ fowl0 = [] ∧ (∀ t. propFOs(t, l, rfo(t)) = []);
| l0 ≠ l, propFOs(t0, l, (t = t0 ⊃ rfo(t0) -1l FO(l0);rfo(t0))) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦ |
t = t0, l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦
l0 ≠ l, propFOs(t0, l, rfo(t0)) ≠ [], t ≠ t0, ∀ t. propFOs(t, l, rfo(t)) = [] ⊦
| t = t0, l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦ |
l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦
| l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∀ t. propFOs(t, l, rfo(t)) = [] ⊦ |
propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [] ⊦
Used terms: t0
| propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [] ⊦ |
propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∃ bel. bel = rfo(t0) ⊦
Used formulas: ∃ bel. bel = rfo(t0)
| propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [], ∃ bel. bel = rfo(t0) ⊦ |
bel = rfo(t0), propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [] ⊦
| bel = rfo(t0), propFOs(t0, l, rfo(t0)) = [], l0 ≠ l, propFOs(t0, l, rfo(t0) -1l FO(l0)) ≠ [] ⊦ |
propFOs(t0, l, bel) = [], l0 ≠ l, propFOs(t0, l, bel -1l FO(l0)) ≠ [] ⊦
| propFOs(t0, l, bel) = [], l0 ≠ l, propFOs(t0, l, bel -1l FO(l0)) ≠ [] ⊦ |
propFOs(t0, l, be + bel0) = [], l0 ≠ l, propFOs(t0, l, (be + bel0) -1l FO(l0)) ≠ [], ∀ t0, l, l0. ¬(propFOs(t0, l, bel0) = [] ∧ l0 ≠ l ∧ propFOs(t0, l, bel0 -1l FO(l0)) ≠ []) ⊦
Used simplifier rules: propFOs-base: ⊦ propFOs(t, l, []) = []; List('a) freely generated by [], +;; ⊦ [] -1l a = []; (s)
| propFOs(t0, l, be + bel0) = [], l0 ≠ l, propFOs(t0, l, (be + bel0) -1l FO(l0)) ≠ [], ∀ t0, l, l0. ¬(propFOs(t0, l, bel0) = [] ∧ l0 ≠ l ∧ propFOs(t0, l, bel0 -1l FO(l0)) ≠ []) ⊦ |
propFOs(t0, l, be ') = [], propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-append: ⊦ propFOs(t, l, bel0 + bel1) = propFOs(t, l, bel0) + propFOs(t, l, bel1); ⊦ a + x = a ' + x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ x + y = [] ↔ x = [] ∧ y = []; (s)
| propFOs(t0, l, be ') = [], propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
be = SF, propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
be = W(l3, v), propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
be = FO(l3), propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: Bevent freely generated by SF, W, FO;;
| be = SF, propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (SF ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-one-sf: ⊦ propFOs(t, l, SF ') = [];
| propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (SF ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a)
propFOs(t0, l, bel0) = [], FO(l0) ≠ SF, l0 ≠ l, propFOs(t0, l, SF ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: ⊦ FO(l) ≠ SF; (s) Used terms: FO(l0), SF, bel0
| ⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a) |
| propFOs(t0, l, bel0) = [], FO(l0) ≠ SF, l0 ≠ l, propFOs(t0, l, SF ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-SF: ⊦ propFOs(t, l, SF ' + bel) = propFOs(t, l, bel); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ FO(l) ≠ SF; (s)
| propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
Used terms: t0, l, l0
| be = W(l3, v), propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (W(l3, v) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-one-w: ⊦ propFOs(t, l, W(l0, v) ') = [];
| propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (W(l3, v) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a)
propFOs(t0, l, bel0) = [], FO(l0) ≠ W(l3, v), l0 ≠ l, propFOs(t0, l, W(l3, v) ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: ⊦ W(l, v) ≠ FO(l0); (s) Used terms: FO(l0), W(l3, v), bel0
| ⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a) |
| propFOs(t0, l, bel0) = [], FO(l0) ≠ W(l3, v), l0 ≠ l, propFOs(t0, l, W(l3, v) ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-W: ⊦ propFOs(t, l, W(l0, v) ' + bel) = propFOs(t, l, bel); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ W(l, v) ≠ FO(l0); (s)
| propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
Used terms: t0, l, l0
| be = FO(l3), propFOs(t0, l, bel0) = [], propFOs(t0, l, be ') = [], l0 ≠ l, propFOs(t0, l, (be ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, FO(l3) ') = [], propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
| propFOs(t0, l, FO(l3) ') = [], propFOs(t0, l, bel0) = [], l0 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], propFOs(t0, l, FO(l3) ') = [], l0 ≠ l, l3 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-one-fo-same: ⊦ propFOs(t, l, FO(l) ') = FO(t) '; ⊦ a ' ≠ []; (s) Used formulas: l3 = l
| propFOs(t0, l, bel0) = [], propFOs(t0, l, FO(l3) ') = [], l0 ≠ l, l3 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l, l3 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-one-fo-other: ⊦ l0 ≠ l → propFOs(t, l, FO(l0) ') = [];
| propFOs(t0, l, bel0) = [], l0 ≠ l, l3 ≠ l, propFOs(t0, l, (FO(l3) ' + bel0) -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a)
propFOs(t0, l, bel0) = [], FO(l0) ≠ FO(l3), l0 ≠ l, l3 ≠ l, propFOs(t0, l, FO(l3) ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: ⊦ FO(l) = FO(l0) ↔ l = l0; (s) ⊦ (a ' + x) -1l a = x; (s) a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: FO(l0), FO(l3), bel0
| ⊦ a ≠ b → (b ' + x) -1l a = b ' + (x -1l a) |
| propFOs(t0, l, bel0) = [], FO(l0) ≠ FO(l3), l0 ≠ l, l3 ≠ l, propFOs(t0, l, FO(l3) ' + (bel0 -1l FO(l0))) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
propFOs(t0, l, bel0) = [], l0 ≠ l3, l0 ≠ l, l3 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦
Used simplifier rules: propFOs-FO-other: ⊦ l ≠ l0 → propFOs(t, l, FO(l0) ' + bel) = propFOs(t, l, bel); a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ FO(l) = FO(l0) ↔ l = l0; (s)
| propFOs(t0, l, bel0) = [], l0 ≠ l3, l0 ≠ l, l3 ≠ l, propFOs(t0, l, bel0 -1l FO(l0)) ≠ [], ∀ t, l1, l2. propFOs(t, l1, bel0) ≠ [] ∨ l2 = l1 ∨ propFOs(t, l1, bel0 -1l FO(l2)) = [] ⊦ |
Used terms: t0, l, l0
| l0 ≠ l, propFOs(t0, l, rfo(t0)) ≠ [], t ≠ t0, ∀ t. propFOs(t, l, rfo(t)) = [] ⊦ |
Used terms: t0
| l0 ≠ l, reorder(l, fow + fowl, fowl1, rfo), ¬ reorder(l, fow + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l0, l, fowl1, rfo, t. ¬(l0 ≠ l ∧ reorder(l, fowl, fowl1, rfo) ∧ ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0)))) ⊦ |
l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
Used simplifier rules: ⊦ a + x = a ' + x; (s)
| l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
fow = FO(t1), l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
fow = W(v, t1), l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
Used simplifier rules: FOW freely generated by FO, W;;
| fow = FO(t1), l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
l0 ≠ l, ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))), 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 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);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
| l0 ≠ l, ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))), 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 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
fowl1 = fowl2 + FO(t1) ' + fowl3, fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l)))
fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l)))
| fowl1 = fowl2 + FO(t1) ' + fowl3, fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0)))
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)
| fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0))) |
fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0))), fowl2 + FO(t1) ' + fowl3 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
Used terms: fowl2, fowl3
| fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0))), fowl2 + FO(t1) ' + fowl3 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ¬ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0)))
Used simplifier rules: a: ⊦ (x + y) + z = x + y + z; from specification list
| fowl2 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl2 + fowl3, rfo), ¬ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl0, fowl4. fowl2 + FO(t1) ' + fowl3 = fowl0 + FO(t1) ' + fowl4 ∧ fowl0 | t1 = [] ∧ reorder(l, fowl, fowl0 + fowl4, rfo(t := rfo(t) -1l FO(l0))) |
Used terms: l0, l, fowl2 + fowl3, rfo, t
| fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), fowl1 | t1 = [] ∧ FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l)))
| fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
t = t1, fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l)))
fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l)))
Used formulas: t = t1
| t = t1, fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
Used simplifier rules: in-01-01: ⊦ a ∈ x -1l b → a ∈ x; (forward) from specification list-del ⊦ FO(l) = FO(l0) ↔ l = l0; (s) in-05: ⊦ ¬ a ∈ y -1l b ∧ a ∈ y → a = b; (forward) from specification list-del
| fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) ≠ rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
Used formulas: rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))), l0 = l ∨ ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ∨ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := rfo(t1 := rfo(t1) -1l FO(l))(t1) -1l FO(l0))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
Used terms: l0, l, fowl1, rfo(t1 := rfo(t1) -1l FO(l)), t1
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))), l0 = l ∨ ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ∨ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := rfo(t1 := rfo(t1) -1l FO(l))(t1) -1l FO(l0))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) = rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) ≠ rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
Used formulas: rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) = rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) = rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) = rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0)))
| rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) = rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), FO(l) ∈ rfo(t1) -1l FO(l0), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
⊦ (x -1l a) -1l b = (x -1l b) -1l a
Used terms: rfo(t1), FO(l), FO(l0)
| ⊦ (x -1l a) -1l b = (x -1l b) -1l a |
| rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) = rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)) ≠ rfo(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0)), l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t1 := (rfo(t1) -1l FO(l)) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
| fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)) ≠ rfo(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l)), l0 ≠ l, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), FO(l) ∈ rfo(t1) -1l FO(l0), ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l0))(t1 := (rfo(t1) -1l FO(l0)) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t1 := rfo(t1) -1l FO(l0))) |
| fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))), FO(l) ∈ (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) ∧ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := (t = t1 ⊃ rfo(t1) -1l FO(l0);rfo(t1)) -1l FO(l))) |
fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
| fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))), l0 = l ∨ ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ∨ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t1 := rfo(t1) -1l FO(l))(t) -1l FO(l0))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
Used terms: l0, l, fowl1, rfo(t1 := rfo(t1) -1l FO(l)), t
| fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))), l0 = l ∨ ¬ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))) ∨ reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t1 := rfo(t1) -1l FO(l))(t) -1l FO(l0))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
| fowl1 | t1 = [], l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0)) ≠ rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l)), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
Used formulas: rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0)) = rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))
| fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0)) ≠ rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l)), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))(t0) ≠ rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))(t0), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
| fowl1 | t1 = [], rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))(t0) ≠ rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))(t0), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
fowl1 | t1 = [], (t = t0 ⊃ rfo(t0) -1l FO(l0);(t1 = t0 ⊃ rfo(t0) -1l FO(l);rfo(t0))) ≠ (t1 = t0 ⊃ rfo(t0) -1l FO(l);(t = t0 ⊃ rfo(t0) -1l FO(l0);rfo(t0))), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0)))
| fowl1 | t1 = [], (t = t0 ⊃ rfo(t0) -1l FO(l0);(t1 = t0 ⊃ rfo(t0) -1l FO(l);rfo(t0))) ≠ (t1 = t0 ⊃ rfo(t0) -1l FO(l);(t = t0 ⊃ rfo(t0) -1l FO(l0);rfo(t0))), l0 ≠ l, t ≠ t1, reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))(t := rfo(t) -1l FO(l0))), reorder(l, fowl, fowl1, rfo(t1 := rfo(t1) -1l FO(l))), FO(l) ∈ rfo(t1), ¬ reorder(l, fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))(t1 := rfo(t1) -1l FO(l))) ⊦ ∃ fowl2, fowl3. fowl1 = fowl2 + FO(t1) ' + fowl3 ∧ fowl2 | t1 = [] ∧ reorder(l, fowl, fowl2 + fowl3, rfo(t := rfo(t) -1l FO(l0))) |
Used formulas: t = t0
| fow = W(v, t1), l0 ≠ l, reorder(l, fow ' + fowl, fowl1, rfo), ¬ reorder(l, fow ' + fowl, fowl1, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
fowl1.head = W(v, t1), fowl1 ≠ [], l0 ≠ l, reorder(l, fowl, fowl1.tail, rfo), ¬ reorder(l, fowl, fowl1.tail, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
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
| fowl1.head = W(v, t1), fowl1 ≠ [], l0 ≠ l, reorder(l, fowl, fowl1.tail, rfo), ¬ reorder(l, fowl, fowl1.tail, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
fow = W(v, t1), fowl1 = fow + fowl2, fowl1 ≠ [], l0 ≠ l, reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl, fowl2, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
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, fowl1 ≠ [], l0 ≠ l, reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl, fowl2, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
l0 ≠ l, reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl, fowl2, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦
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)
| l0 ≠ l, reorder(l, fowl, fowl2, rfo), ¬ reorder(l, fowl, fowl2, rfo(t := rfo(t) -1l FO(l0))), ∀ l1, l2, fowl0, rfo0, t0. l1 = l2 ∨ ¬ reorder(l2, fowl, fowl0, rfo0) ∨ reorder(l2, fowl, fowl0, rfo0(t0 := rfo0(t0) -1l FO(l1))) ⊦ |
Used terms: l0, l, fowl2, rfo, 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.