R
↳Dependency Pair Analysis
MINUS(s(x), s(y)) -> MINUS(x, y)
LE(s(x), s(y)) -> LE(x, y)
QUOT(x, s(y)) -> IFQUOT(le(s(y), x), x, s(y))
QUOT(x, s(y)) -> LE(s(y), x)
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
IFQUOT(true, x, y) -> MINUS(x, y)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(x, y)
minus(x, 0) -> x
minus(s(x), s(y)) -> minus(x, y)
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
quot(x, s(y)) -> ifquot(le(s(y), x), x, s(y))
ifquot(true, x, y) -> s(quot(minus(x, y), y))
ifquot(false, x, y) -> 0
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
LE(s(x), s(y)) -> LE(x, y)
minus(x, 0) -> x
minus(s(x), s(y)) -> minus(x, y)
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
quot(x, s(y)) -> ifquot(le(s(y), x), x, s(y))
ifquot(true, x, y) -> s(quot(minus(x, y), y))
ifquot(false, x, y) -> 0
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳Size-Change Principle
→DP Problem 3
↳UsableRules
LE(s(x), s(y)) -> LE(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
QUOT(x, s(y)) -> IFQUOT(le(s(y), x), x, s(y))
minus(x, 0) -> x
minus(s(x), s(y)) -> minus(x, y)
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
quot(x, s(y)) -> ifquot(le(s(y), x), x, s(y))
ifquot(true, x, y) -> s(quot(minus(x, y), y))
ifquot(false, x, y) -> 0
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳Narrowing Transformation
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
QUOT(x, s(y)) -> IFQUOT(le(s(y), x), x, s(y))
minus(s(x), s(y)) -> minus(x, y)
minus(x, 0) -> x
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
innermost
two new Dependency Pairs are created:
QUOT(x, s(y)) -> IFQUOT(le(s(y), x), x, s(y))
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
QUOT(0, s(y')) -> IFQUOT(false, 0, s(y'))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳Nar
...
→DP Problem 7
↳Narrowing Transformation
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
minus(s(x), s(y)) -> minus(x, y)
minus(x, 0) -> x
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
innermost
two new Dependency Pairs are created:
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
IFQUOT(true, s(x''), s(y'')) -> QUOT(minus(x'', y''), s(y''))
IFQUOT(true, x'', 0) -> QUOT(x'', 0)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳Nar
...
→DP Problem 8
↳Negative Polynomial Order
IFQUOT(true, s(x''), s(y'')) -> QUOT(minus(x'', y''), s(y''))
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
minus(s(x), s(y)) -> minus(x, y)
minus(x, 0) -> x
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
innermost
IFQUOT(true, s(x''), s(y'')) -> QUOT(minus(x'', y''), s(y''))
minus(s(x), s(y)) -> minus(x, y)
minus(x, 0) -> x
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
POL( IFQUOT(x1, ..., x3) ) = x2
POL( s(x1) ) = x1 + 1
POL( QUOT(x1, x2) ) = x1
POL( minus(x1, x2) ) = x1
POL( le(x1, x2) ) = 0
POL( true ) = 0
POL( false ) = 0
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳Nar
...
→DP Problem 9
↳Dependency Graph
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
minus(s(x), s(y)) -> minus(x, y)
minus(x, 0) -> x
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
innermost