YES
minus(0, Y) → 0
minus(s(X), s(Y)) → minus(X, Y)
geq(X, 0) → true
geq(0, s(Y)) → false
geq(s(X), s(Y)) → geq(X, Y)
div(0, s(Y)) → 0
div(s(X), s(Y)) → if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0)
if(true, X, Y) → X
if(false, X, Y) → Y
minus: empty set
0: empty set
s: {1}
geq: empty set
true: empty set
false: empty set
div: {1}
if: {1}
↳ CSR
↳ Zantema-Transformation
minus(0, Y) → 0
minus(s(X), s(Y)) → minus(X, Y)
geq(X, 0) → true
geq(0, s(Y)) → false
geq(s(X), s(Y)) → geq(X, Y)
div(0, s(Y)) → 0
div(s(X), s(Y)) → if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0)
if(true, X, Y) → X
if(false, X, Y) → Y
minus: empty set
0: empty set
s: {1}
geq: empty set
true: empty set
false: empty set
div: {1}
if: {1}
We applied the Zantema [34] to transform the context-sensitive TRS to an usual TRS.
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
A(0Inact) → 01
MINUS(sInact(X), sInact(Y)) → A(Y)
DIV(s(X), sInact(Y)) → MINUS(X, a(Y))
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
A(sInact(x1)) → S(x1)
IF(true, X, Y) → A(X)
MINUS(sInact(X), sInact(Y)) → A(X)
MINUS(0Inact, Y) → 01
IF(false, X, Y) → A(Y)
DIV(s(X), sInact(Y)) → IF(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
DIV(s(X), sInact(Y)) → DIV(minus(X, a(Y)), sInact(a(Y)))
DIV(s(X), sInact(Y)) → GEQ(X, a(Y))
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
DIV(s(X), sInact(Y)) → A(Y)
GEQ(sInact(X), sInact(Y)) → A(X)
GEQ(sInact(X), sInact(Y)) → A(Y)
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
A(0Inact) → 01
MINUS(sInact(X), sInact(Y)) → A(Y)
DIV(s(X), sInact(Y)) → MINUS(X, a(Y))
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
A(sInact(x1)) → S(x1)
IF(true, X, Y) → A(X)
MINUS(sInact(X), sInact(Y)) → A(X)
MINUS(0Inact, Y) → 01
IF(false, X, Y) → A(Y)
DIV(s(X), sInact(Y)) → IF(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
DIV(s(X), sInact(Y)) → DIV(minus(X, a(Y)), sInact(a(Y)))
DIV(s(X), sInact(Y)) → GEQ(X, a(Y))
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
DIV(s(X), sInact(Y)) → A(Y)
GEQ(sInact(X), sInact(Y)) → A(X)
GEQ(sInact(X), sInact(Y)) → A(Y)
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
s(x1) → sInact(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDP
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
s(x1) → sInact(x1)
a(x0)
0
s(x0)
GEQ(sInact(X), sInact(Y)) → GEQ(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
POL(0) = 2
POL(0Inact) = 1
POL(GEQ(x1, x2)) = 2·x1 + x2
POL(a(x1)) = 1 + 2·x1
POL(s(x1)) = 2 + 2·x1
POL(sInact(x1)) = 2 + 2·x1
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
s(x1) → sInact(x1)
a(x0)
0
s(x0)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
s(x1) → sInact(x1)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
s(x1) → sInact(x1)
a(x0)
0
s(x0)
MINUS(sInact(X), sInact(Y)) → MINUS(a(X), a(Y))
a(x) → x
a(sInact(x1)) → s(x1)
a(0Inact) → 0
0 → 0Inact
POL(0) = 2
POL(0Inact) = 1
POL(MINUS(x1, x2)) = 2·x1 + x2
POL(a(x1)) = 1 + 2·x1
POL(s(x1)) = 2 + 2·x1
POL(sInact(x1)) = 2 + 2·x1
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ PisEmptyProof
↳ QDP
s(x1) → sInact(x1)
a(x0)
0
s(x0)
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
DIV(s(X), sInact(Y)) → DIV(minus(X, a(Y)), sInact(a(Y)))
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV(s(X), sInact(Y)) → DIV(minus(X, a(Y)), sInact(a(Y)))
POL(0) = 0
POL(0Inact) = 0
POL(DIV(x1, x2)) = x1
POL(a(x1)) = 0
POL(minus(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(sInact(x1)) = 0
minus(0Inact, Y) → 0
0 → 0Inact
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
↳ CSR
↳ Zantema-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
minus(0Inact, Y) → 0
minus(sInact(X), sInact(Y)) → minus(a(X), a(Y))
geq(X, 0Inact) → true
geq(0Inact, sInact(Y)) → false
geq(sInact(X), sInact(Y)) → geq(a(X), a(Y))
div(0, sInact(Y)) → 0
div(s(X), sInact(Y)) → if(geq(X, a(Y)), sInact(div(minus(X, a(Y)), sInact(a(Y)))), 0Inact)
if(true, X, Y) → a(X)
if(false, X, Y) → a(Y)
a(x) → x
s(x1) → sInact(x1)
a(sInact(x1)) → s(x1)
0 → 0Inact
a(0Inact) → 0