R
↳Dependency Pair Analysis
MERGE(.(x, y), .(u, v)) -> IF(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
MERGE(.(x, y), .(u, v)) -> MERGE(y, .(u, v))
MERGE(.(x, y), .(u, v)) -> MERGE(.(x, y), v)
++'(.(x, y), z) -> ++'(y, z)
R
↳DPs
→DP Problem 1
↳Polynomial Ordering
→DP Problem 2
↳Polo
MERGE(.(x, y), .(u, v)) -> MERGE(.(x, y), v)
MERGE(.(x, y), .(u, v)) -> MERGE(y, .(u, v))
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
if(true, x, y) -> x
if(false, x, y) -> x
MERGE(.(x, y), .(u, v)) -> MERGE(.(x, y), v)
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
if(true, x, y) -> x
if(false, x, y) -> x
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
POL(if(x1, x2, x3)) = x2 POL(merge(x1, x2)) = x1 + x2 POL(false) = 0 POL(++(x1, x2)) = x1 + x2 POL(nil) = 1 POL(true) = 0 POL(.(x1, x2)) = 1 + x2 POL(MERGE(x1, x2)) = 1 + x2 POL(<(x1, x2)) = 0
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 3
↳Polynomial Ordering
→DP Problem 2
↳Polo
MERGE(.(x, y), .(u, v)) -> MERGE(y, .(u, v))
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
if(true, x, y) -> x
if(false, x, y) -> x
MERGE(.(x, y), .(u, v)) -> MERGE(y, .(u, v))
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
if(true, x, y) -> x
if(false, x, y) -> x
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
POL(if(x1, x2, x3)) = x2 POL(merge(x1, x2)) = x1 + x2 POL(false) = 0 POL(++(x1, x2)) = x1 + x2 POL(nil) = 1 POL(true) = 0 POL(.(x1, x2)) = 1 + x2 POL(MERGE(x1, x2)) = 1 + x1 POL(<(x1, x2)) = 0
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 3
↳Polo
...
→DP Problem 4
↳Dependency Graph
→DP Problem 2
↳Polo
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
if(true, x, y) -> x
if(false, x, y) -> x
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polynomial Ordering
++'(.(x, y), z) -> ++'(y, z)
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
if(true, x, y) -> x
if(false, x, y) -> x
++'(.(x, y), z) -> ++'(y, z)
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
if(true, x, y) -> x
if(false, x, y) -> x
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
POL(if(x1, x2, x3)) = x2 POL(++'(x1, x2)) = 1 + x1 POL(merge(x1, x2)) = x1 + x2 POL(false) = 0 POL(++(x1, x2)) = x1 + x2 POL(nil) = 1 POL(true) = 0 POL(.(x1, x2)) = 1 + x2 POL(<(x1, x2)) = 0
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 5
↳Dependency Graph
merge(nil, y) -> y
merge(x, nil) -> x
merge(.(x, y), .(u, v)) -> if(< (x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) -> y
++(.(x, y), z) -> .(x, ++(y, z))
if(true, x, y) -> x
if(false, x, y) -> x