(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

a__fact(X) → a__if(a__zero(mark(X)), s(0), prod(X, fact(p(X))))
a__add(0, X) → mark(X)
a__add(s(X), Y) → s(a__add(mark(X), mark(Y)))
a__prod(0, X) → 0
a__prod(s(X), Y) → a__add(mark(Y), a__prod(mark(X), mark(Y)))
a__if(true, X, Y) → mark(X)
a__if(false, X, Y) → mark(Y)
a__zero(0) → true
a__zero(s(X)) → false
a__p(s(X)) → mark(X)
mark(fact(X)) → a__fact(mark(X))
mark(if(X1, X2, X3)) → a__if(mark(X1), X2, X3)
mark(zero(X)) → a__zero(mark(X))
mark(prod(X1, X2)) → a__prod(mark(X1), mark(X2))
mark(p(X)) → a__p(mark(X))
mark(add(X1, X2)) → a__add(mark(X1), mark(X2))
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(true) → true
mark(false) → false
a__fact(X) → fact(X)
a__if(X1, X2, X3) → if(X1, X2, X3)
a__zero(X) → zero(X)
a__prod(X1, X2) → prod(X1, X2)
a__p(X) → p(X)
a__add(X1, X2) → add(X1, X2)

Q is empty.