R
↳Dependency Pair Analysis
HALF(s(s(x))) -> HALF(x)
LASTBIT(s(s(x))) -> LASTBIT(x)
CONV(s(x)) -> CONV(half(s(x)))
CONV(s(x)) -> HALF(s(x))
CONV(s(x)) -> LASTBIT(s(x))
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
HALF(s(s(x))) -> HALF(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
lastbit(0) -> 0
lastbit(s(0)) -> s(0)
lastbit(s(s(x))) -> lastbit(x)
conv(0) -> cons(nil, 0)
conv(s(x)) -> cons(conv(half(s(x))), lastbit(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
HALF(s(s(x))) -> HALF(x)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
LASTBIT(s(s(x))) -> LASTBIT(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
lastbit(0) -> 0
lastbit(s(0)) -> s(0)
lastbit(s(s(x))) -> lastbit(x)
conv(0) -> cons(nil, 0)
conv(s(x)) -> cons(conv(half(s(x))), lastbit(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳Size-Change Principle
→DP Problem 3
↳UsableRules
LASTBIT(s(s(x))) -> LASTBIT(x)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
CONV(s(x)) -> CONV(half(s(x)))
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
lastbit(0) -> 0
lastbit(s(0)) -> s(0)
lastbit(s(s(x))) -> lastbit(x)
conv(0) -> cons(nil, 0)
conv(s(x)) -> cons(conv(half(s(x))), lastbit(s(x)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳Modular Removal of Rules
CONV(s(x)) -> CONV(half(s(x)))
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
POL(0) = 0 POL(CONV(x1)) = 1 + x1 POL(s(x1)) = 1 + x1 POL(half(x1)) = x1
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳MRR
...
→DP Problem 7
↳Modular Removal of Rules
CONV(s(x)) -> CONV(half(s(x)))
half(0) -> 0
innermost
POL(CONV(x1)) = x1 POL(s(x1)) = x1 POL(half(x1)) = x1
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 6
↳MRR
...
→DP Problem 8
↳Dependency Graph
CONV(s(x)) -> CONV(half(s(x)))
none
innermost