YES Input TRS: 1: flatten(nil()) -> nil() 2: flatten(unit(x)) -> flatten(x) 3: flatten(++(x,y)) -> ++(flatten(x),flatten(y)) 4: flatten(++(unit(x),y)) -> ++(flatten(x),flatten(y)) 5: flatten(flatten(x)) -> flatten(x) 6: rev(nil()) -> nil() 7: rev(unit(x)) -> unit(x) 8: rev(++(x,y)) -> ++(rev(y),rev(x)) 9: rev(rev(x)) -> x 10: ++(x,nil()) -> x 11: ++(nil(),y) -> y 12: ++(++(x,y),z) -> ++(x,++(y,z)) Number of strict rules: 12 Direct POLO(bPol) ... removes: 4 1 3 5 10 11 2 flatten w: 2 * x1 + 1 ++ w: x1 + x2 + 2 unit w: x1 + 20538 nil w: 1 rev w: x1 Number of strict rules: 5 Direct POLO(bPol) ... removes: 8 7 6 flatten w: 2 * x1 + 1 ++ w: x1 + x2 + 15922 unit w: x1 + 8946 nil w: 1 rev w: 2 * x1 Number of strict rules: 2 Direct POLO(bPol) ... removes: 9 flatten w: 2 * x1 + 1 ++ w: x1 + x2 + 34509 unit w: x1 + 16908 nil w: 1 rev w: 2 * x1 + 15082 Number of strict rules: 1 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #++(++(x,y),z) -> #++(x,++(y,z)) #2: #++(++(x,y),z) -> #++(y,z) Number of SCCs: 1, DPs: 2 SCC { #1 #2 } POLO(Sum)... succeeded. flatten w: 0 ++ w: x1 + x2 + 1 unit w: 0 #++ w: x1 nil w: 0 rev w: 0 USABLE RULES: { } Removed DPs: #1 #2 Number of SCCs: 0, DPs: 0