MAYBE MAYBE TRS: { null(nil()) -> true(), null(add(n, x)) -> false(), tail(nil()) -> nil(), tail(add(n, x)) -> x, head(add(n, x)) -> n, app(nil(), y) -> y, app(add(n, x), y) -> add(n, app(x, y)), reverse(nil()) -> nil(), reverse(add(n, x)) -> app(reverse(x), add(n, nil())), shuff(x, y) -> if(null(x), x, y, app(y, add(head(x), nil()))), shuffle(x) -> shuff(x, nil()), if(true(), x, y, z) -> y, if(false(), x, y, z) -> shuff(reverse(tail(x)), z) } DUP: We consider a duplicating system. Trs: { null(nil()) -> true(), null(add(n, x)) -> false(), tail(nil()) -> nil(), tail(add(n, x)) -> x, head(add(n, x)) -> n, app(nil(), y) -> y, app(add(n, x), y) -> add(n, app(x, y)), reverse(nil()) -> nil(), reverse(add(n, x)) -> app(reverse(x), add(n, nil())), shuff(x, y) -> if(null(x), x, y, app(y, add(head(x), nil()))), shuffle(x) -> shuff(x, nil()), if(true(), x, y, z) -> y, if(false(), x, y, z) -> shuff(reverse(tail(x)), z) } Fail