f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
TRUNC(s(s(x))) → TRUNC(x)
F(true, x, y) → GT(x, y)
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
GT(s(u), s(v)) → GT(u, v)
F(true, x, y) → TRUNC(x)
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
TRUNC(s(s(x))) → TRUNC(x)
F(true, x, y) → GT(x, y)
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
GT(s(u), s(v)) → GT(u, v)
F(true, x, y) → TRUNC(x)
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
GT(s(u), s(v)) → GT(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
TRUNC(s(s(x))) → TRUNC(x)
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
TRUNC(s(s(x))) → TRUNC(x)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
TRUNC(s(s(x))) → TRUNC(x)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
f(true, x, y) → f(gt(x, y), trunc(x), s(y))
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
f(true, x0, x1)
gt(s(x0), 0)
f(true, x0, x1)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ NonInfProof
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
F(true, s(x0), s(x1)) → F(gt(x0, x1), trunc(s(x0)), s(s(x1)))
F(true, s(x0), 0) → F(true, trunc(s(x0)), s(0))
F(true, 0, x0) → F(false, trunc(0), s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ NonInfProof
F(true, s(x0), 0) → F(true, trunc(s(x0)), s(0))
F(true, s(x0), s(x1)) → F(gt(x0, x1), trunc(s(x0)), s(s(x1)))
F(true, 0, x0) → F(false, trunc(0), s(x0))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ NonInfProof
F(true, s(x0), s(x1)) → F(gt(x0, x1), trunc(s(x0)), s(s(x1)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
F(true, s(0), s(y1)) → F(gt(0, y1), 0, s(s(y1)))
F(true, s(s(x0)), s(y1)) → F(gt(s(x0), y1), s(s(trunc(x0))), s(s(y1)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ NonInfProof
F(true, s(0), s(y1)) → F(gt(0, y1), 0, s(s(y1)))
F(true, s(s(x0)), s(y1)) → F(gt(s(x0), y1), s(s(trunc(x0))), s(s(y1)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ NonInfProof
F(true, s(s(x0)), s(y1)) → F(gt(s(x0), y1), s(s(trunc(x0))), s(s(y1)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
F(true, s(s(y_1)), s(s(z1))) → F(gt(s(y_1), s(z1)), s(s(trunc(y_1))), s(s(s(z1))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ NonInfProof
F(true, s(s(y_1)), s(s(z1))) → F(gt(s(y_1), s(z1)), s(s(trunc(y_1))), s(s(s(z1))))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
F(true, s(s(y_1)), s(s(z1))) → F(gt(y_1, z1), s(s(trunc(y_1))), s(s(s(z1))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ NonInfProof
F(true, s(s(y_1)), s(s(z1))) → F(gt(y_1, z1), s(s(trunc(y_1))), s(s(s(z1))))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)
POL(0) = 1
POL(F(x1, x2, x3)) = -1 + 2·x2 - x3
POL(c) = -1
POL(false) = 1
POL(gt(x1, x2)) = 1 + x2
POL(s(x1)) = 1 + x1
POL(true) = 0
POL(trunc(x1)) = x1
The following pairs are in Pbound:
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
The following rules are usable:
F(true, x, y) → F(gt(x, y), trunc(x), s(y))
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
trunc(0) → 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ NonInfProof
↳ QDP
↳ PisEmptyProof
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
trunc(0) → 0
trunc(s(0)) → 0
trunc(s(s(x))) → s(s(trunc(x)))
gt(0, x0)
trunc(s(s(x0)))
gt(s(x0), s(x1))
trunc(0)
trunc(s(0))
gt(s(x0), 0)