MAYBE MAYBE TRS: { isEmpty(cons(x, xs)) -> false(), isEmpty(nil()) -> true(), isZero(0()) -> true(), isZero(s(x)) -> false(), head(cons(x, xs)) -> x, tail(cons(x, xs)) -> xs, tail(nil()) -> nil(), append(cons(y, ys), x) -> cons(y, append(ys, x)), append(nil(), x) -> cons(x, nil()), p(0()) -> 0(), p(s(0())) -> 0(), p(s(s(x))) -> s(p(s(x))), inc(0()) -> s(0()), inc(s(x)) -> s(inc(x)), if(false(), false(), false(), xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs), if(false(), false(), true(), xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2), if(false(), true(), b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError(), if(true(), false(), b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError(), if(true(), true(), b, xs, ys, xs2, ys2, zs, zs2) -> zs, addLists(xs, ys, zs) -> if( isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)) ), addList(xs, ys) -> addLists(xs, ys, nil()) } DUP: We consider a duplicating system. Trs: { isEmpty(cons(x, xs)) -> false(), isEmpty(nil()) -> true(), isZero(0()) -> true(), isZero(s(x)) -> false(), head(cons(x, xs)) -> x, tail(cons(x, xs)) -> xs, tail(nil()) -> nil(), append(cons(y, ys), x) -> cons(y, append(ys, x)), append(nil(), x) -> cons(x, nil()), p(0()) -> 0(), p(s(0())) -> 0(), p(s(s(x))) -> s(p(s(x))), inc(0()) -> s(0()), inc(s(x)) -> s(inc(x)), if(false(), false(), false(), xs, ys, xs2, ys2, zs, zs2) -> addLists(xs2, ys2, zs), if(false(), false(), true(), xs, ys, xs2, ys2, zs, zs2) -> addLists(xs, ys, zs2), if(false(), true(), b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError(), if(true(), false(), b, xs, ys, xs2, ys2, zs, zs2) -> differentLengthError(), if(true(), true(), b, xs, ys, xs2, ys2, zs, zs2) -> zs, addLists(xs, ys, zs) -> if( isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)) ), addList(xs, ys) -> addLists(xs, ys, nil()) } Fail