R
↳Dependency Pair Analysis
*'(x, +(y, z)) -> +'(*(x, y), *(x, z))
*'(x, +(y, z)) -> *'(x, y)
*'(x, +(y, z)) -> *'(x, z)
*'(+(y, z), x) -> +'(*(x, y), *(x, z))
*'(+(y, z), x) -> *'(x, y)
*'(+(y, z), x) -> *'(x, z)
*'(*(x, y), z) -> *'(x, *(y, z))
*'(*(x, y), z) -> *'(y, z)
+'(+(x, y), z) -> +'(x, +(y, z))
+'(+(x, y), z) -> +'(y, z)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳Nar
+'(+(x, y), z) -> +'(y, z)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
+(+(x, y), z) -> +(x, +(y, z))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳Size-Change Principle
→DP Problem 2
↳Nar
+'(+(x, y), z) -> +'(y, z)
none
innermost
|
|
trivial
+(x1, x2) -> +(x1, x2)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Narrowing Transformation
*'(*(x, y), z) -> *'(y, z)
*'(*(x, y), z) -> *'(x, *(y, z))
*'(x, +(y, z)) -> *'(x, z)
*'(+(y, z), x) -> *'(x, z)
*'(+(y, z), x) -> *'(x, y)
*'(x, +(y, z)) -> *'(x, y)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
+(+(x, y), z) -> +(x, +(y, z))
innermost
two new Dependency Pairs are created:
*'(*(x, y), z) -> *'(x, *(y, z))
*'(*(x, y0), +(y'', z'')) -> *'(x, +(*(y0, y''), *(y0, z'')))
*'(*(x, *(x'', y'')), z'') -> *'(x, *(x'', *(y'', z'')))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Nar
→DP Problem 4
↳Polynomial Ordering
*'(*(x, *(x'', y'')), z'') -> *'(x, *(x'', *(y'', z'')))
*'(*(x, y0), +(y'', z'')) -> *'(x, +(*(y0, y''), *(y0, z'')))
*'(x, +(y, z)) -> *'(x, z)
*'(+(y, z), x) -> *'(x, z)
*'(+(y, z), x) -> *'(x, y)
*'(x, +(y, z)) -> *'(x, y)
*'(*(x, y), z) -> *'(y, z)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
+(+(x, y), z) -> +(x, +(y, z))
innermost
*'(x, +(y, z)) -> *'(x, z)
*'(+(y, z), x) -> *'(x, z)
*'(+(y, z), x) -> *'(x, y)
*'(x, +(y, z)) -> *'(x, y)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
+(+(x, y), z) -> +(x, +(y, z))
POL(*'(x1, x2)) = x1 + x1·x2 + x2 POL(*(x1, x2)) = x1 + x1·x2 + x2 POL(+(x1, x2)) = 1 + x1 + x2
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Nar
→DP Problem 4
↳Polo
...
→DP Problem 5
↳Dependency Graph
*'(*(x, *(x'', y'')), z'') -> *'(x, *(x'', *(y'', z'')))
*'(*(x, y0), +(y'', z'')) -> *'(x, +(*(y0, y''), *(y0, z'')))
*'(*(x, y), z) -> *'(y, z)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
+(+(x, y), z) -> +(x, +(y, z))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Nar
→DP Problem 4
↳Polo
...
→DP Problem 6
↳Usable Rules (Innermost)
*'(*(x, y), z) -> *'(y, z)
*(x, +(y, z)) -> +(*(x, y), *(x, z))
*(+(y, z), x) -> +(*(x, y), *(x, z))
*(*(x, y), z) -> *(x, *(y, z))
+(+(x, y), z) -> +(x, +(y, z))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Nar
→DP Problem 4
↳Polo
...
→DP Problem 7
↳Size-Change Principle
*'(*(x, y), z) -> *'(y, z)
none
innermost
|
|
trivial
*(x1, x2) -> *(x1, x2)