MAYBE MAYBE TRS: { if(true(), X, Y) -> X, if(false(), X, Y) -> Y, zero(s(X)) -> false(), zero(0()) -> true(), prod(s(X), Y) -> add(Y, prod(X, Y)), prod(0(), X) -> 0(), fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X)))), p(s(X)) -> X, add(s(X), Y) -> s(add(X, Y)), add(0(), X) -> X } DUP: We consider a duplicating system. Trs: { if(true(), X, Y) -> X, if(false(), X, Y) -> Y, zero(s(X)) -> false(), zero(0()) -> true(), prod(s(X), Y) -> add(Y, prod(X, Y)), prod(0(), X) -> 0(), fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X)))), p(s(X)) -> X, add(s(X), Y) -> s(add(X, Y)), add(0(), X) -> X } Fail