YES

Problem:
 p(s(x)) -> x
 fact(0()) -> s(0())
 fact(s(x)) -> *(s(x),fact(p(s(x))))
 *(0(),y) -> 0()
 *(s(x),y) -> +(*(x,y),y)
 +(x,0()) -> x
 +(x,s(y)) -> s(+(x,y))

Proof:
 DP Processor:
  DPs:
   fact#(s(x)) -> p#(s(x))
   fact#(s(x)) -> fact#(p(s(x)))
   fact#(s(x)) -> *#(s(x),fact(p(s(x))))
   *#(s(x),y) -> *#(x,y)
   *#(s(x),y) -> +#(*(x,y),y)
   +#(x,s(y)) -> +#(x,y)
  TRS:
   p(s(x)) -> x
   fact(0()) -> s(0())
   fact(s(x)) -> *(s(x),fact(p(s(x))))
   *(0(),y) -> 0()
   *(s(x),y) -> +(*(x,y),y)
   +(x,0()) -> x
   +(x,s(y)) -> s(+(x,y))
  EDG Processor:
   DPs:
    fact#(s(x)) -> p#(s(x))
    fact#(s(x)) -> fact#(p(s(x)))
    fact#(s(x)) -> *#(s(x),fact(p(s(x))))
    *#(s(x),y) -> *#(x,y)
    *#(s(x),y) -> +#(*(x,y),y)
    +#(x,s(y)) -> +#(x,y)
   TRS:
    p(s(x)) -> x
    fact(0()) -> s(0())
    fact(s(x)) -> *(s(x),fact(p(s(x))))
    *(0(),y) -> 0()
    *(s(x),y) -> +(*(x,y),y)
    +(x,0()) -> x
    +(x,s(y)) -> s(+(x,y))
   graph:
    +#(x,s(y)) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y)
    *#(s(x),y) -> +#(*(x,y),y) -> +#(x,s(y)) -> +#(x,y)
    *#(s(x),y) -> *#(x,y) -> *#(s(x),y) -> *#(x,y)
    *#(s(x),y) -> *#(x,y) -> *#(s(x),y) -> +#(*(x,y),y)
    fact#(s(x)) -> *#(s(x),fact(p(s(x)))) ->
    *#(s(x),y) -> *#(x,y)
    fact#(s(x)) -> *#(s(x),fact(p(s(x)))) ->
    *#(s(x),y) -> +#(*(x,y),y)
    fact#(s(x)) -> fact#(p(s(x))) -> fact#(s(x)) -> p#(s(x))
    fact#(s(x)) -> fact#(p(s(x))) -> fact#(s(x)) -> fact#(p(s(x)))
    fact#(s(x)) -> fact#(p(s(x))) -> fact#(s(x)) -> *#(s(x),fact(p(s(x))))
   SCC Processor:
    #sccs: 3
    #rules: 3
    #arcs: 9/36
    DPs:
     fact#(s(x)) -> fact#(p(s(x)))
    TRS:
     p(s(x)) -> x
     fact(0()) -> s(0())
     fact(s(x)) -> *(s(x),fact(p(s(x))))
     *(0(),y) -> 0()
     *(s(x),y) -> +(*(x,y),y)
     +(x,0()) -> x
     +(x,s(y)) -> s(+(x,y))
    Usable Rule Processor:
     DPs:
      fact#(s(x)) -> fact#(p(s(x)))
     TRS:
      p(s(x)) -> x
     Bounds Processor:
      bound: 0
      enrichment: match
      automaton:
       final states: {2,1}
       transitions:
        f100() -> 2*
        fact{#,0}(4) -> 1*
        p0(3) -> 4*
        s0(2) -> 3*
        2 -> 4*
      problem:
       DPs:
        
       TRS:
        p(s(x)) -> x
      Qed
    
    DPs:
     *#(s(x),y) -> *#(x,y)
    TRS:
     p(s(x)) -> x
     fact(0()) -> s(0())
     fact(s(x)) -> *(s(x),fact(p(s(x))))
     *(0(),y) -> 0()
     *(s(x),y) -> +(*(x,y),y)
     +(x,0()) -> x
     +(x,s(y)) -> s(+(x,y))
    Subterm Criterion Processor:
     simple projection:
      pi(*#) = 0
     problem:
      DPs:
       
      TRS:
       p(s(x)) -> x
       fact(0()) -> s(0())
       fact(s(x)) -> *(s(x),fact(p(s(x))))
       *(0(),y) -> 0()
       *(s(x),y) -> +(*(x,y),y)
       +(x,0()) -> x
       +(x,s(y)) -> s(+(x,y))
     Qed
    
    DPs:
     +#(x,s(y)) -> +#(x,y)
    TRS:
     p(s(x)) -> x
     fact(0()) -> s(0())
     fact(s(x)) -> *(s(x),fact(p(s(x))))
     *(0(),y) -> 0()
     *(s(x),y) -> +(*(x,y),y)
     +(x,0()) -> x
     +(x,s(y)) -> s(+(x,y))
    Subterm Criterion Processor:
     simple projection:
      pi(+#) = 1
     problem:
      DPs:
       
      TRS:
       p(s(x)) -> x
       fact(0()) -> s(0())
       fact(s(x)) -> *(s(x),fact(p(s(x))))
       *(0(),y) -> 0()
       *(s(x),y) -> +(*(x,y),y)
       +(x,0()) -> x
       +(x,s(y)) -> s(+(x,y))
     Qed