R
↳Dependency Pair Analysis
FLATTEN(unit(x)) -> FLATTEN(x)
FLATTEN(++(x, y)) -> ++'(flatten(x), flatten(y))
FLATTEN(++(x, y)) -> FLATTEN(x)
FLATTEN(++(x, y)) -> FLATTEN(y)
FLATTEN(++(unit(x), y)) -> ++'(flatten(x), flatten(y))
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
REV(++(x, y)) -> ++'(rev(y), rev(x))
REV(++(x, y)) -> REV(y)
REV(++(x, y)) -> REV(x)
++'(++(x, y), z) -> ++'(x, ++(y, z))
++'(++(x, y), z) -> ++'(y, z)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
++'(++(x, y), z) -> ++'(y, z)
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
one new Dependency Pair is created:
++'(++(x, y), z) -> ++'(y, z)
++'(++(x, ++(x'', y'')), z'') -> ++'(++(x'', y''), z'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
++'(++(x, ++(x'', y'')), z'') -> ++'(++(x'', y''), z'')
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
++'(++(x, ++(x'', y'')), z'') -> ++'(++(x'', y''), z'')
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
POL(++'(x1, x2)) = 1 + x1 + x2 POL(++(x1, x2)) = 1 + x1 + x2 POL(nil) = 0
++'(x1, x2) -> ++'(x1, x2)
++(x1, x2) -> ++(x1, x2)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 4
↳AFS
...
→DP Problem 5
↳Dependency Graph
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(++(x, y)) -> FLATTEN(y)
FLATTEN(++(x, y)) -> FLATTEN(x)
FLATTEN(unit(x)) -> FLATTEN(x)
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(unit(x)) -> FLATTEN(x)
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(++(x, y)) -> FLATTEN(y)
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(++(x, y)) -> FLATTEN(x)
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(++(x, y)) -> FLATTEN(x)
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 7
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(++(x, y)) -> FLATTEN(y)
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
eight new Dependency Pairs are created:
FLATTEN(++(x, y)) -> FLATTEN(y)
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 8
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
15 new Dependency Pairs are created:
FLATTEN(++(unit(x), y)) -> FLATTEN(x)
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 9
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
30 new Dependency Pairs are created:
FLATTEN(++(unit(x), y)) -> FLATTEN(y)
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 10
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(unit(unit(x''))) -> FLATTEN(unit(x''))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 11
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(++(unit(unit(x'''')), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 12
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(++(x, unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(x, unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(x, unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 13
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(x, unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(++(unit(unit(unit(x''''))), y)) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(unit(unit(x'''''')))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(unit(++(x'''''', y'''''')))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 14
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(unit(++(x'''''', y'''''')))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(unit(x'''''')))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(x, unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(x, unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
three new Dependency Pairs are created:
FLATTEN(++(unit(x), unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(x), unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 15
↳Argument Filtering and Ordering
→DP Problem 3
↳FwdInst
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(unit(++(x'''''', y'''''')))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(unit(x'''''')))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(x, unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(x, unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(x'''''''''', y'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(unit(x'''''''''')), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(unit(x''''''''), y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(++(x'''''''', y'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', unit(unit(x'''''''')))), y''))) -> FLATTEN(++(unit(++(x'''', unit(unit(x'''''''')))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(unit(x''''''''), y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(++(x'''''''', y'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(unit(x'''''''')), y'''')), y''))) -> FLATTEN(++(unit(++(unit(unit(x'''''''')), y'''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(unit(x''''''), y''''''))), y''))) -> FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(++(x'''''', y''''''))), y''))) -> FLATTEN(++(unit(unit(++(x'''''', y''''''))), y''))
FLATTEN(++(unit(x), ++(unit(unit(unit(x''''''))), y''))) -> FLATTEN(++(unit(unit(unit(x''''''))), y''))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''), y'''')), y''))) -> FLATTEN(++(unit(++(unit(x''''), y'''')), y''))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(unit(unit(x'''''''')), y'''')))) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(x), ++(x'', unit(++(unit(x''''''), y''''''))))) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), ++(x'', unit(++(x'''''', y''''''))))) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(x), unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(x), unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(unit(++(x'''''', y'''''')))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(unit(x'''''')))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(x, unit(unit(++(unit(x''''''), y''''''))))) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(x, unit(unit(++(x'''''', y''''''))))) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(x, unit(unit(unit(x''''''))))) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(unit(++(unit(x''''''), y''''''))), y)) -> FLATTEN(unit(unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(unit(++(x'''''', y''''''))), y)) -> FLATTEN(unit(unit(++(x'''''', y''''''))))
FLATTEN(++(unit(unit(unit(x''''''))), y)) -> FLATTEN(unit(unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', unit(unit(x''''''))))) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(x), ++(x'', ++(unit(x''''), y'''')))) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(x), ++(x'', ++(x'''', y'''')))) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(x), unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(x), unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(unit(x''''''''), y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(++(x'''''''', y'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(++(x'''''''', y'''''''')), y'''')))
FLATTEN(++(unit(++(x'', ++(unit(unit(x'''''''')), y''''))), y)) -> FLATTEN(++(x'', ++(unit(unit(x'''''''')), y'''')))
FLATTEN(++(unit(++(x'', unit(++(unit(x''''''), y'''''')))), y)) -> FLATTEN(++(x'', unit(++(unit(x''''''), y''''''))))
FLATTEN(++(unit(++(x'', unit(++(x'''''', y'''''')))), y)) -> FLATTEN(++(x'', unit(++(x'''''', y''''''))))
FLATTEN(++(unit(++(x'', unit(unit(x'''''')))), y)) -> FLATTEN(++(x'', unit(unit(x''''''))))
FLATTEN(++(unit(++(x'', ++(unit(x''''), y''''))), y)) -> FLATTEN(++(x'', ++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'', ++(x'''', y''''))), y)) -> FLATTEN(++(x'', ++(x'''', y'''')))
FLATTEN(++(unit(++(unit(++(unit(x''''''), y'''''')), y'')), y)) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(unit(++(unit(++(x'''''', y'''''')), y'')), y)) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(unit(x), ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(unit(++(unit(unit(x'''''')), y'')), y)) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(unit(unit(++(unit(x''''), y''''))), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(unit(++(x'''', y''''))), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(++(unit(x''), y'')), y)) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(unit(++(unit(x''''''), y'''''')), y''))) -> FLATTEN(++(unit(++(unit(x''''''), y'''''')), y''))
FLATTEN(++(x, ++(unit(++(x'''''', y'''''')), y''))) -> FLATTEN(++(unit(++(x'''''', y'''''')), y''))
FLATTEN(++(x, ++(unit(unit(x'''''')), y''))) -> FLATTEN(++(unit(unit(x'''''')), y''))
FLATTEN(++(x, unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(x, unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(x, ++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(++(x, ++(x'', y''))) -> FLATTEN(++(x'', y''))
FLATTEN(++(unit(++(unit(x''''), y'''')), y)) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(++(unit(++(x'''', y'''')), y)) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(++(unit(x), ++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))) -> FLATTEN(++(unit(++(x'''', ++(unit(++(unit(x''''''''''), y'''''''''')), y''''''))), y''))
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
POL(unit(x1)) = x1 POL(FLATTEN(x1)) = 1 + x1 POL(++(x1, x2)) = 1 + x1 + x2 POL(nil) = 1
FLATTEN(x1) -> FLATTEN(x1)
++(x1, x2) -> ++(x1, x2)
unit(x1) -> unit(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 16
↳Dependency Graph
→DP Problem 3
↳FwdInst
FLATTEN(unit(unit(++(unit(x''''), y'''')))) -> FLATTEN(unit(++(unit(x''''), y'''')))
FLATTEN(unit(unit(++(x'''', y'''')))) -> FLATTEN(unit(++(x'''', y'''')))
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
FLATTEN(unit(++(unit(x''), y''))) -> FLATTEN(++(unit(x''), y''))
FLATTEN(unit(++(x'', y''))) -> FLATTEN(++(x'', y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 17
↳Argument Filtering and Ordering
→DP Problem 3
↳FwdInst
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
FLATTEN(unit(unit(unit(x'''')))) -> FLATTEN(unit(unit(x'''')))
POL(unit(x1)) = 1 + x1 POL(FLATTEN(x1)) = 1 + x1
FLATTEN(x1) -> FLATTEN(x1)
unit(x1) -> unit(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 18
↳Dependency Graph
→DP Problem 3
↳FwdInst
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
REV(++(x, y)) -> REV(y)
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
one new Dependency Pair is created:
REV(++(x, y)) -> REV(y)
REV(++(x, ++(x'', y''))) -> REV(++(x'', y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 19
↳Argument Filtering and Ordering
REV(++(x, ++(x'', y''))) -> REV(++(x'', y''))
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost
REV(++(x, ++(x'', y''))) -> REV(++(x'', y''))
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
POL(REV(x1)) = 1 + x1 POL(++(x1, x2)) = 1 + x1 + x2 POL(nil) = 0
REV(x1) -> REV(x1)
++(x1, x2) -> ++(x1, x2)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 19
↳AFS
...
→DP Problem 20
↳Dependency Graph
flatten(nil) -> nil
flatten(unit(x)) -> flatten(x)
flatten(++(x, y)) -> ++(flatten(x), flatten(y))
flatten(++(unit(x), y)) -> ++(flatten(x), flatten(y))
flatten(flatten(x)) -> flatten(x)
rev(nil) -> nil
rev(unit(x)) -> unit(x)
rev(++(x, y)) -> ++(rev(y), rev(x))
rev(rev(x)) -> x
++(x, nil) -> x
++(nil, y) -> y
++(++(x, y), z) -> ++(x, ++(y, z))
innermost