YES

Problem:
 ++(nil(),y) -> y
 ++(x,nil()) -> x
 ++(.(x,y),z) -> .(x,++(y,z))
 ++(++(x,y),z) -> ++(x,++(y,z))

Proof:
 DP Processor:
  DPs:
   ++#(.(x,y),z) -> ++#(y,z)
   ++#(++(x,y),z) -> ++#(y,z)
   ++#(++(x,y),z) -> ++#(x,++(y,z))
  TRS:
   ++(nil(),y) -> y
   ++(x,nil()) -> x
   ++(.(x,y),z) -> .(x,++(y,z))
   ++(++(x,y),z) -> ++(x,++(y,z))
  Restore Modifier:
   DPs:
    ++#(.(x,y),z) -> ++#(y,z)
    ++#(++(x,y),z) -> ++#(y,z)
    ++#(++(x,y),z) -> ++#(x,++(y,z))
   TRS:
    ++(nil(),y) -> y
    ++(x,nil()) -> x
    ++(.(x,y),z) -> .(x,++(y,z))
    ++(++(x,y),z) -> ++(x,++(y,z))
   SCC Processor:
    #sccs: 1
    #rules: 3
    #arcs: 9/9
    DPs:
     ++#(.(x,y),z) -> ++#(y,z)
     ++#(++(x,y),z) -> ++#(y,z)
     ++#(++(x,y),z) -> ++#(x,++(y,z))
    TRS:
     ++(nil(),y) -> y
     ++(x,nil()) -> x
     ++(.(x,y),z) -> .(x,++(y,z))
     ++(++(x,y),z) -> ++(x,++(y,z))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [++#](x0, x1) = x0 + x1 + 1,
      
      [.](x0, x1) = x1 + 1,
      
      [++](x0, x1) = x0 + x1,
      
      [nil] = 0
     orientation:
      ++#(.(x,y),z) = y + z + 2 >= y + z + 1 = ++#(y,z)
      
      ++#(++(x,y),z) = x + y + z + 1 >= y + z + 1 = ++#(y,z)
      
      ++#(++(x,y),z) = x + y + z + 1 >= x + y + z + 1 = ++#(x,++(y,z))
      
      ++(nil(),y) = y >= y = y
      
      ++(x,nil()) = x >= x = x
      
      ++(.(x,y),z) = y + z + 1 >= y + z + 1 = .(x,++(y,z))
      
      ++(++(x,y),z) = x + y + z >= x + y + z = ++(x,++(y,z))
     problem:
      DPs:
       ++#(++(x,y),z) -> ++#(y,z)
       ++#(++(x,y),z) -> ++#(x,++(y,z))
      TRS:
       ++(nil(),y) -> y
       ++(x,nil()) -> x
       ++(.(x,y),z) -> .(x,++(y,z))
       ++(++(x,y),z) -> ++(x,++(y,z))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [++#](x0, x1) = x0,
       
       [.](x0, x1) = 1,
       
       [++](x0, x1) = x0 + x1 + 1,
       
       [nil] = 0
      orientation:
       ++#(++(x,y),z) = x + y + 1 >= y = ++#(y,z)
       
       ++#(++(x,y),z) = x + y + 1 >= x = ++#(x,++(y,z))
       
       ++(nil(),y) = y + 1 >= y = y
       
       ++(x,nil()) = x + 1 >= x = x
       
       ++(.(x,y),z) = z + 2 >= 1 = .(x,++(y,z))
       
       ++(++(x,y),z) = x + y + z + 2 >= x + y + z + 2 = ++(x,++(y,z))
      problem:
       DPs:
        
       TRS:
        ++(nil(),y) -> y
        ++(x,nil()) -> x
        ++(.(x,y),z) -> .(x,++(y,z))
        ++(++(x,y),z) -> ++(x,++(y,z))
      Qed