R
↳Dependency Pair Analysis
REV(++(x, y)) -> REV1(x, y)
REV(++(x, y)) -> REV2(x, y)
REV1(x, ++(y, z)) -> REV1(y, z)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y, z)) -> REV2(y, z)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳Nar
REV1(x, ++(y, z)) -> REV1(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV1(x, ++(y, z)) -> REV1(y, z)
REV1(x, ++(y0, ++(y'', z''))) -> REV1(y0, ++(y'', z''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
→DP Problem 2
↳Nar
REV1(x, ++(y0, ++(y'', z''))) -> REV1(y0, ++(y'', z''))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV1(x, ++(y0, ++(y'', z''))) -> REV1(y0, ++(y'', z''))
REV1(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV1(y0'', ++(y''0, ++(y'''', z'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 2
↳Nar
REV1(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV1(y0'', ++(y''0, ++(y'''', z'''')))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
REV1(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV1(y0'', ++(y''0, ++(y'''', z'''')))
POL(REV1(x1, x2)) = 1 + x1 + x2 POL(++(x1, x2)) = 1 + x1 + x2
REV1(x1, x2) -> REV1(x1, x2)
++(x1, x2) -> ++(x1, x2)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 5
↳Dependency Graph
→DP Problem 2
↳Nar
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Narrowing Transformation
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x, y)) -> REV2(x, y)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y', nil)) -> REV(nil)
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rewriting Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
REV(++(x, y)) -> REV2(x, y)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y, z)) -> REV2(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 7
↳Forward Instantiation Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x, y)) -> REV2(x, y)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV(++(x, y)) -> REV2(x, y)
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 8
↳Narrowing Transformation
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 9
↳Rewriting Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV2(x, ++(y', nil)) -> REV(++(x, nil))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 10
↳Rewriting Transformation
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 11
↳Rewriting Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 12
↳Forward Instantiation Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 13
↳Forward Instantiation Transformation
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV(++(x''', ++(y''0, ++(y'''', z'''')))) -> REV2(x''', ++(y''0, ++(y'''', z'''')))
REV(++(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 14
↳Forward Instantiation Transformation
REV(++(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV(++(x''', ++(y''0, ++(y'''', z'''')))) -> REV2(x''', ++(y''0, ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV2(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV2(y0'', ++(y''0, ++(y'''', z'''')))
REV2(x, ++(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 15
↳Argument Filtering and Ordering
REV2(x, ++(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
REV2(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV2(y0'', ++(y''0, ++(y'''', z'''')))
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
REV(++(x''', ++(y''0, ++(y'''', z'''')))) -> REV2(x''', ++(y''0, ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV(++(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
REV2(x, ++(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(y0', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
REV2(x, ++(y0'', ++(y''0, ++(y'''', z'''')))) -> REV2(y0'', ++(y''0, ++(y'''', z'''')))
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
REV(++(x''', ++(y''0, ++(y'''', z'''')))) -> REV2(x''', ++(y''0, ++(y'''', z'''')))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV(++(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))) -> REV2(x''', ++(y'''', ++(y0'''', ++(y'''''', z''''''))))
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
POL(rev(x1)) = x1 POL(REV(x1)) = x1 POL(++(x1)) = 1 + x1 POL(nil) = 0
REV2(x1, x2) -> x2
++(x1, x2) -> ++(x2)
REV(x1) -> REV(x1)
rev2(x1, x2) -> x2
rev(x1) -> rev(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 6
↳Rw
...
→DP Problem 16
↳Dependency Graph
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, ++(rev1(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))), rev2(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost