R
↳Dependency Pair Analysis
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
MINUS(s(x), s(y)) -> P(s(x))
MINUS(s(x), s(y)) -> P(s(y))
MINUS(x, plus(y, z)) -> MINUS(minus(x, y), z)
MINUS(x, plus(y, z)) -> MINUS(x, y)
P(s(s(x))) -> P(s(x))
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
DIV(s(x), s(y)) -> MINUS(x, y)
DIV(plus(x, y), z) -> PLUS(div(x, z), div(y, z))
DIV(plus(x, y), z) -> DIV(x, z)
DIV(plus(x, y), z) -> DIV(y, z)
PLUS(s(x), y) -> PLUS(y, minus(s(x), s(0)))
PLUS(s(x), y) -> MINUS(s(x), s(0))
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
P(s(s(x))) -> P(s(x))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
p(s(s(x))) -> s(p(s(x)))
p(0) -> s(s(0))
div(s(x), s(y)) -> s(div(minus(x, y), s(y)))
div(plus(x, y), z) -> plus(div(x, z), div(y, z))
plus(0, y) -> y
plus(s(x), y) -> s(plus(y, minus(s(x), s(0))))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 6
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
P(s(s(x))) -> P(s(x))
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(x, plus(y, z)) -> MINUS(x, y)
MINUS(x, plus(y, z)) -> MINUS(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
p(s(s(x))) -> s(p(s(x)))
p(0) -> s(s(0))
div(s(x), s(y)) -> s(div(minus(x, y), s(y)))
div(plus(x, y), z) -> plus(div(x, z), div(y, z))
plus(0, y) -> y
plus(s(x), y) -> s(plus(y, minus(s(x), s(0))))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 7
↳Size-Change Principle
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(x, plus(y, z)) -> MINUS(x, y)
MINUS(x, plus(y, z)) -> MINUS(minus(x, y), z)
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
|
|
|
|
trivial
plus(x1, x2) -> plus(x1, x2)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
p(s(s(x))) -> s(p(s(x)))
p(0) -> s(s(0))
div(s(x), s(y)) -> s(div(minus(x, y), s(y)))
div(plus(x, y), z) -> plus(div(x, z), div(y, z))
plus(0, y) -> y
plus(s(x), y) -> s(plus(y, minus(s(x), s(0))))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 8
↳Narrowing Transformation
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
two new Dependency Pairs are created:
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
MINUS(s(s(x'')), s(y)) -> MINUS(s(p(s(x''))), p(s(y)))
MINUS(s(x), s(s(x''))) -> MINUS(p(s(x)), s(p(s(x''))))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 8
↳Nar
...
→DP Problem 9
↳Negative Polynomial Order
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(s(x), s(s(x''))) -> MINUS(p(s(x)), s(p(s(x''))))
MINUS(s(s(x'')), s(y)) -> MINUS(s(p(s(x''))), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
MINUS(s(x), s(s(x''))) -> MINUS(p(s(x)), s(p(s(x''))))
p(s(s(x))) -> s(p(s(x)))
POL( MINUS(x1, x2) ) = max{0, x2 - 1}
POL( s(x1) ) = x1 + 1
POL( p(x1) ) = max{0, x1 - 1}
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 8
↳Nar
...
→DP Problem 10
↳Negative Polynomial Order
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
MINUS(s(s(x'')), s(y)) -> MINUS(s(p(s(x''))), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
MINUS(s(s(x'')), s(y)) -> MINUS(s(p(s(x''))), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
POL( MINUS(x1, x2) ) = x2
POL( s(x1) ) = x1 + 1
POL( p(x1) ) = max{0, x1 - 1}
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 8
↳Nar
...
→DP Problem 11
↳Dependency Graph
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
p(s(s(x))) -> s(p(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳Usable Rules (Innermost)
→DP Problem 5
↳UsableRules
PLUS(s(x), y) -> PLUS(y, minus(s(x), s(0)))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
p(s(s(x))) -> s(p(s(x)))
p(0) -> s(s(0))
div(s(x), s(y)) -> s(div(minus(x, y), s(y)))
div(plus(x, y), z) -> plus(div(x, z), div(y, z))
plus(0, y) -> y
plus(s(x), y) -> s(plus(y, minus(s(x), s(0))))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 12
↳Modular Removal of Rules
→DP Problem 5
↳UsableRules
PLUS(s(x), y) -> PLUS(y, minus(s(x), s(0)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
POL(PLUS(x1, x2)) = x1 + x2 POL(plus(x1, x2)) = x1 + x2 POL(0) = 0 POL(minus(x1, x2)) = x1 + x2 POL(s(x1)) = x1 POL(p(x1)) = x1
minus(x, plus(y, z)) -> minus(minus(x, y), z)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 12
↳MRR
...
→DP Problem 13
↳Narrowing Transformation
→DP Problem 5
↳UsableRules
PLUS(s(x), y) -> PLUS(y, minus(s(x), s(0)))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
one new Dependency Pair is created:
PLUS(s(x), y) -> PLUS(y, minus(s(x), s(0)))
PLUS(s(x''), y) -> PLUS(y, minus(p(s(x'')), p(s(0))))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 12
↳MRR
...
→DP Problem 14
↳Usable Rules (Innermost)
→DP Problem 5
↳UsableRules
PLUS(s(x''), y) -> PLUS(y, minus(p(s(x'')), p(s(0))))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 12
↳MRR
...
→DP Problem 15
↳Negative Polynomial Order
→DP Problem 5
↳UsableRules
PLUS(s(x''), y) -> PLUS(y, minus(p(s(x'')), p(s(0))))
minus(0, y) -> 0
p(s(s(x))) -> s(p(s(x)))
innermost
PLUS(s(x''), y) -> PLUS(y, minus(p(s(x'')), p(s(0))))
minus(0, y) -> 0
p(s(s(x))) -> s(p(s(x)))
POL( PLUS(x1, x2) ) = x1 + x2
POL( s(x1) ) = 1
POL( minus(x1, x2) ) = 0
POL( 0 ) = 0
POL( p(x1) ) = 1
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 12
↳MRR
...
→DP Problem 16
↳Dependency Graph
→DP Problem 5
↳UsableRules
minus(0, y) -> 0
p(s(s(x))) -> s(p(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳Usable Rules (Innermost)
DIV(plus(x, y), z) -> DIV(y, z)
DIV(plus(x, y), z) -> DIV(x, z)
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
p(s(s(x))) -> s(p(s(x)))
p(0) -> s(s(0))
div(s(x), s(y)) -> s(div(minus(x, y), s(y)))
div(plus(x, y), z) -> plus(div(x, z), div(y, z))
plus(0, y) -> y
plus(s(x), y) -> s(plus(y, minus(s(x), s(0))))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 17
↳Negative Polynomial Order
DIV(plus(x, y), z) -> DIV(y, z)
DIV(plus(x, y), z) -> DIV(x, z)
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
DIV(plus(x, y), z) -> DIV(y, z)
DIV(plus(x, y), z) -> DIV(x, z)
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
POL( DIV(x1, x2) ) = x1
POL( plus(x1, x2) ) = x1 + x2 + 1
POL( s(x1) ) = x1
POL( minus(x1, x2) ) = x1
POL( 0 ) = 0
POL( p(x1) ) = 0
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 17
↳Neg POLO
...
→DP Problem 18
↳Negative Polynomial Order
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
POL( DIV(x1, x2) ) = x1
POL( s(x1) ) = x1 + 1
POL( minus(x1, x2) ) = x1
POL( 0 ) = 0
POL( p(x1) ) = x1
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 17
↳Neg POLO
...
→DP Problem 19
↳Dependency Graph
minus(x, plus(y, z)) -> minus(minus(x, y), z)
minus(x, 0) -> x
minus(0, y) -> 0
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(s(x))) -> s(p(s(x)))
innermost