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