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
↳Polynomial Ordering
→DP Problem 2
↳Polo
→DP Problem 3
↳Nar
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
MINUS(s(x), s(y)) -> MINUS(x, y)
POL(MINUS(x1, x2)) = x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 4
↳Dependency Graph
→DP Problem 2
↳Polo
→DP Problem 3
↳Nar
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
↳Polo
→DP Problem 2
↳Polynomial Ordering
→DP Problem 3
↳Nar
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
LE(s(x), s(y)) -> LE(x, y)
POL(LE(x1, x2)) = x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 5
↳Dependency Graph
→DP Problem 3
↳Nar
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
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Narrowing Transformation
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
two new Dependency Pairs are created:
QUOT(x, s(y)) -> IFQUOT(le(s(y), x), x, s(y))
QUOT(0, s(y')) -> IFQUOT(false, 0, s(y'))
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Nar
→DP Problem 6
↳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(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
two new Dependency Pairs are created:
IFQUOT(true, x, y) -> QUOT(minus(x, y), y)
IFQUOT(true, x'', 0) -> QUOT(x'', 0)
IFQUOT(true, s(x''), s(y'')) -> QUOT(minus(x'', y''), s(y''))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Nar
→DP Problem 6
↳Nar
...
→DP Problem 7
↳Polynomial Ordering
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(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
IFQUOT(true, s(x''), s(y'')) -> QUOT(minus(x'', y''), 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)
POL(QUOT(x1, x2)) = x1 POL(0) = 0 POL(false) = 0 POL(minus(x1, x2)) = x1 POL(true) = 0 POL(s(x1)) = 1 + x1 POL(IF_QUOT(x1, x2, x3)) = x2 POL(le(x1, x2)) = 0
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Nar
→DP Problem 6
↳Nar
...
→DP Problem 8
↳Dependency Graph
QUOT(s(y''), s(y0)) -> IFQUOT(le(y0, y''), s(y''), s(y0))
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