YES

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

Proof:
 DP Processor:
  DPs:
   rev#(++(x,y)) -> rev#(x)
   rev#(++(x,y)) -> rev#(y)
   rev#(++(x,y)) -> ++#(rev(y),rev(x))
   ++#(.(x,y),z) -> ++#(y,z)
   ++#(x,++(y,z)) -> ++#(x,y)
   ++#(x,++(y,z)) -> ++#(++(x,y),z)
  TRS:
   rev(nil()) -> nil()
   rev(rev(x)) -> x
   rev(++(x,y)) -> ++(rev(y),rev(x))
   ++(nil(),y) -> y
   ++(x,nil()) -> x
   ++(.(x,y),z) -> .(x,++(y,z))
   ++(x,++(y,z)) -> ++(++(x,y),z)
   make(x) -> .(x,nil())
  TDG Processor:
   DPs:
    rev#(++(x,y)) -> rev#(x)
    rev#(++(x,y)) -> rev#(y)
    rev#(++(x,y)) -> ++#(rev(y),rev(x))
    ++#(.(x,y),z) -> ++#(y,z)
    ++#(x,++(y,z)) -> ++#(x,y)
    ++#(x,++(y,z)) -> ++#(++(x,y),z)
   TRS:
    rev(nil()) -> nil()
    rev(rev(x)) -> x
    rev(++(x,y)) -> ++(rev(y),rev(x))
    ++(nil(),y) -> y
    ++(x,nil()) -> x
    ++(.(x,y),z) -> .(x,++(y,z))
    ++(x,++(y,z)) -> ++(++(x,y),z)
    make(x) -> .(x,nil())
   graph:
    ++#(.(x,y),z) -> ++#(y,z) -> ++#(x,++(y,z)) -> ++#(++(x,y),z)
    ++#(.(x,y),z) -> ++#(y,z) -> ++#(x,++(y,z)) -> ++#(x,y)
    ++#(.(x,y),z) -> ++#(y,z) -> ++#(.(x,y),z) -> ++#(y,z)
    ++#(x,++(y,z)) -> ++#(++(x,y),z) ->
    ++#(x,++(y,z)) -> ++#(++(x,y),z)
    ++#(x,++(y,z)) -> ++#(++(x,y),z) -> ++#(x,++(y,z)) -> ++#(x,y)
    ++#(x,++(y,z)) -> ++#(++(x,y),z) -> ++#(.(x,y),z) -> ++#(y,z)
    ++#(x,++(y,z)) -> ++#(x,y) -> ++#(x,++(y,z)) -> ++#(++(x,y),z)
    ++#(x,++(y,z)) -> ++#(x,y) -> ++#(x,++(y,z)) -> ++#(x,y)
    ++#(x,++(y,z)) -> ++#(x,y) -> ++#(.(x,y),z) -> ++#(y,z)
    rev#(++(x,y)) -> ++#(rev(y),rev(x)) ->
    ++#(x,++(y,z)) -> ++#(++(x,y),z)
    rev#(++(x,y)) -> ++#(rev(y),rev(x)) ->
    ++#(x,++(y,z)) -> ++#(x,y)
    rev#(++(x,y)) -> ++#(rev(y),rev(x)) -> ++#(.(x,y),z) -> ++#(y,z)
    rev#(++(x,y)) -> rev#(y) -> rev#(++(x,y)) -> ++#(rev(y),rev(x))
    rev#(++(x,y)) -> rev#(y) -> rev#(++(x,y)) -> rev#(y)
    rev#(++(x,y)) -> rev#(y) -> rev#(++(x,y)) -> rev#(x)
    rev#(++(x,y)) -> rev#(x) -> rev#(++(x,y)) -> ++#(rev(y),rev(x))
    rev#(++(x,y)) -> rev#(x) -> rev#(++(x,y)) -> rev#(y)
    rev#(++(x,y)) -> rev#(x) -> rev#(++(x,y)) -> rev#(x)
   CDG Processor:
    DPs:
     rev#(++(x,y)) -> rev#(x)
     rev#(++(x,y)) -> rev#(y)
     rev#(++(x,y)) -> ++#(rev(y),rev(x))
     ++#(.(x,y),z) -> ++#(y,z)
     ++#(x,++(y,z)) -> ++#(x,y)
     ++#(x,++(y,z)) -> ++#(++(x,y),z)
    TRS:
     rev(nil()) -> nil()
     rev(rev(x)) -> x
     rev(++(x,y)) -> ++(rev(y),rev(x))
     ++(nil(),y) -> y
     ++(x,nil()) -> x
     ++(.(x,y),z) -> .(x,++(y,z))
     ++(x,++(y,z)) -> ++(++(x,y),z)
     make(x) -> .(x,nil())
    graph:
     ++#(.(x,y),z) -> ++#(y,z) -> ++#(.(x,y),z) -> ++#(y,z)
     ++#(x,++(y,z)) -> ++#(++(x,y),z) -> ++#(.(x,y),z) -> ++#(y,z)
     ++#(x,++(y,z)) -> ++#(x,y) -> ++#(.(x,y),z) -> ++#(y,z)
     rev#(++(x,y)) -> ++#(rev(y),rev(x)) ->
     ++#(.(x,y),z) -> ++#(y,z)
     rev#(++(x,y)) -> ++#(rev(y),rev(x)) ->
     ++#(x,++(y,z)) -> ++#(x,y)
     rev#(++(x,y)) -> ++#(rev(y),rev(x)) -> ++#(x,++(y,z)) -> ++#(++(x,y),z)
    SCC Processor:
     #sccs: 1
     #rules: 1
     #arcs: 6/36
     DPs:
      ++#(.(x,y),z) -> ++#(y,z)
     TRS:
      rev(nil()) -> nil()
      rev(rev(x)) -> x
      rev(++(x,y)) -> ++(rev(y),rev(x))
      ++(nil(),y) -> y
      ++(x,nil()) -> x
      ++(.(x,y),z) -> .(x,++(y,z))
      ++(x,++(y,z)) -> ++(++(x,y),z)
      make(x) -> .(x,nil())
     Matrix Interpretation Processor: dim=1
      
      interpretation:
       [++#](x0, x1) = x0 + 2,
       
       [make](x0) = x0 + 3,
       
       [.](x0, x1) = 1/2x0 + x1 + 2,
       
       [++](x0, x1) = x0 + x1 + 1,
       
       [rev](x0) = 2x0 + 1,
       
       [nil] = 1
      orientation:
       ++#(.(x,y),z) = 1/2x + y + 4 >= y + 2 = ++#(y,z)
       
       rev(nil()) = 3 >= 1 = nil()
       
       rev(rev(x)) = 4x + 3 >= x = x
       
       rev(++(x,y)) = 2x + 2y + 3 >= 2x + 2y + 3 = ++(rev(y),rev(x))
       
       ++(nil(),y) = y + 2 >= y = y
       
       ++(x,nil()) = x + 2 >= x = x
       
       ++(.(x,y),z) = 1/2x + y + z + 3 >= 1/2x + y + z + 3 = .(x,++(y,z))
       
       ++(x,++(y,z)) = x + y + z + 2 >= x + y + z + 2 = ++(++(x,y),z)
       
       make(x) = x + 3 >= 1/2x + 3 = .(x,nil())
      problem:
       DPs:
        
       TRS:
        rev(nil()) -> nil()
        rev(rev(x)) -> x
        rev(++(x,y)) -> ++(rev(y),rev(x))
        ++(nil(),y) -> y
        ++(x,nil()) -> x
        ++(.(x,y),z) -> .(x,++(y,z))
        ++(x,++(y,z)) -> ++(++(x,y),z)
        make(x) -> .(x,nil())
      Qed