YES
TRS:
 {f(a(), f(x, a())) -> f(f(a(), f(f(a(), a()), x)), a())}
 DP:
  Strict:
   {f#(a(), f(x, a())) -> f#(f(a(), f(f(a(), a()), x)), a()),
    f#(a(), f(x, a())) -> f#(f(a(), a()), x),
    f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)),
    f#(a(), f(x, a())) -> f#(a(), a())}
  Weak:
  {f(a(), f(x, a())) -> f(f(a(), f(f(a(), a()), x)), a())}
  EDG:
   {(f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)), f#(a(), f(x, a())) -> f#(a(), a()))
    (f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)), f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)))
    (f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)), f#(a(), f(x, a())) -> f#(f(a(), a()), x))
    (f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x)), f#(a(), f(x, a())) -> f#(f(a(), f(f(a(), a()), x)), a()))}
   SCCS:
    Scc:
     {f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x))}
    SCC:
     Strict:
      {f#(a(), f(x, a())) -> f#(a(), f(f(a(), a()), x))}
     Weak:
     {f(a(), f(x, a())) -> f(f(a(), f(f(a(), a()), x)), a())}
     UR:
      {}
      BOUND:
       Bound: match(-raise)-bounded by 1
       Automaton:
        {     a_1() -> 2*
              a_0() -> 1*
         f#_1(2, 4) -> 1*
         f#_0(1, 1) -> 1*
          f_1(3, 3) -> 4*
          f_1(3, 1) -> 4*
          f_1(2, 2) -> 3*
          f_0(1, 1) -> 1*}
       Strict:
        {}
       Qed