YES

Problem:
 app(app(plus(),0()),y) -> y
 app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
 app(app(map(),f),nil()) -> nil()
 app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs))
 app(app(app(curry(),g),x),y) -> app(app(g,x),y)
 inc() -> app(map(),app(app(curry(),plus()),app(s(),0())))

Proof:
 Uncurry Processor:
  plus2(0(),y) -> y
  plus2(s1(x),y) -> s1(plus2(x,y))
  map2(f,nil()) -> nil()
  map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
  curry3(g,x,y) -> app(app(g,x),y)
  inc() -> map1(curry2(plus(),s1(0())))
  app(plus1(x6),x7) -> plus2(x6,x7)
  app(plus(),x7) -> plus1(x7)
  app(s(),x7) -> s1(x7)
  app(map1(x6),x7) -> map2(x6,x7)
  app(map(),x7) -> map1(x7)
  app(cons1(x6),x7) -> cons2(x6,x7)
  app(cons(),x7) -> cons1(x7)
  app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
  app(curry1(x6),x7) -> curry2(x6,x7)
  app(curry(),x7) -> curry1(x7)
  DP Processor:
   DPs:
    plus{2,#}(s1(x),y) -> plus{2,#}(x,y)
    map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
    map{2,#}(f,cons2(x,xs)) -> app#(f,x)
    curry{3,#}(g,x,y) -> app#(g,x)
    curry{3,#}(g,x,y) -> app#(app(g,x),y)
    app#(plus1(x6),x7) -> plus{2,#}(x6,x7)
    app#(map1(x6),x7) -> map{2,#}(x6,x7)
    app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
   TRS:
    plus2(0(),y) -> y
    plus2(s1(x),y) -> s1(plus2(x,y))
    map2(f,nil()) -> nil()
    map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
    curry3(g,x,y) -> app(app(g,x),y)
    inc() -> map1(curry2(plus(),s1(0())))
    app(plus1(x6),x7) -> plus2(x6,x7)
    app(plus(),x7) -> plus1(x7)
    app(s(),x7) -> s1(x7)
    app(map1(x6),x7) -> map2(x6,x7)
    app(map(),x7) -> map1(x7)
    app(cons1(x6),x7) -> cons2(x6,x7)
    app(cons(),x7) -> cons1(x7)
    app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
    app(curry1(x6),x7) -> curry2(x6,x7)
    app(curry(),x7) -> curry1(x7)
   TDG Processor:
    DPs:
     plus{2,#}(s1(x),y) -> plus{2,#}(x,y)
     map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
     map{2,#}(f,cons2(x,xs)) -> app#(f,x)
     curry{3,#}(g,x,y) -> app#(g,x)
     curry{3,#}(g,x,y) -> app#(app(g,x),y)
     app#(plus1(x6),x7) -> plus{2,#}(x6,x7)
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
    TRS:
     plus2(0(),y) -> y
     plus2(s1(x),y) -> s1(plus2(x,y))
     map2(f,nil()) -> nil()
     map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
     curry3(g,x,y) -> app(app(g,x),y)
     inc() -> map1(curry2(plus(),s1(0())))
     app(plus1(x6),x7) -> plus2(x6,x7)
     app(plus(),x7) -> plus1(x7)
     app(s(),x7) -> s1(x7)
     app(map1(x6),x7) -> map2(x6,x7)
     app(map(),x7) -> map1(x7)
     app(cons1(x6),x7) -> cons2(x6,x7)
     app(cons(),x7) -> cons1(x7)
     app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
     app(curry1(x6),x7) -> curry2(x6,x7)
     app(curry(),x7) -> curry1(x7)
    graph:
     curry{3,#}(g,x,y) -> app#(app(g,x),y) ->
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
     curry{3,#}(g,x,y) -> app#(app(g,x),y) ->
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     curry{3,#}(g,x,y) -> app#(app(g,x),y) ->
     app#(plus1(x6),x7) -> plus{2,#}(x6,x7)
     curry{3,#}(g,x,y) -> app#(g,x) ->
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
     curry{3,#}(g,x,y) -> app#(g,x) ->
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     curry{3,#}(g,x,y) -> app#(g,x) ->
     app#(plus1(x6),x7) -> plus{2,#}(x6,x7)
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7) ->
     curry{3,#}(g,x,y) -> app#(app(g,x),y)
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7) ->
     curry{3,#}(g,x,y) -> app#(g,x)
     app#(map1(x6),x7) -> map{2,#}(x6,x7) ->
     map{2,#}(f,cons2(x,xs)) -> app#(f,x)
     app#(map1(x6),x7) -> map{2,#}(x6,x7) ->
     map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
     app#(plus1(x6),x7) -> plus{2,#}(x6,x7) ->
     plus{2,#}(s1(x),y) -> plus{2,#}(x,y)
     map{2,#}(f,cons2(x,xs)) -> app#(f,x) ->
     app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
     map{2,#}(f,cons2(x,xs)) -> app#(f,x) ->
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     map{2,#}(f,cons2(x,xs)) -> app#(f,x) ->
     app#(plus1(x6),x7) -> plus{2,#}(x6,x7)
     map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) ->
     map{2,#}(f,cons2(x,xs)) -> app#(f,x)
     map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs) ->
     map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
     plus{2,#}(s1(x),y) -> plus{2,#}(x,y) -> plus{2,#}(s1(x),y) -> plus{2,#}(x,y)
    SCC Processor:
     #sccs: 2
     #rules: 7
     #arcs: 17/64
     DPs:
      curry{3,#}(g,x,y) -> app#(app(g,x),y)
      app#(map1(x6),x7) -> map{2,#}(x6,x7)
      map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
      map{2,#}(f,cons2(x,xs)) -> app#(f,x)
      app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
      curry{3,#}(g,x,y) -> app#(g,x)
     TRS:
      plus2(0(),y) -> y
      plus2(s1(x),y) -> s1(plus2(x,y))
      map2(f,nil()) -> nil()
      map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
      curry3(g,x,y) -> app(app(g,x),y)
      inc() -> map1(curry2(plus(),s1(0())))
      app(plus1(x6),x7) -> plus2(x6,x7)
      app(plus(),x7) -> plus1(x7)
      app(s(),x7) -> s1(x7)
      app(map1(x6),x7) -> map2(x6,x7)
      app(map(),x7) -> map1(x7)
      app(cons1(x6),x7) -> cons2(x6,x7)
      app(cons(),x7) -> cons1(x7)
      app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
      app(curry1(x6),x7) -> curry2(x6,x7)
      app(curry(),x7) -> curry1(x7)
     Usable Rule Processor:
      DPs:
       curry{3,#}(g,x,y) -> app#(app(g,x),y)
       app#(map1(x6),x7) -> map{2,#}(x6,x7)
       map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
       map{2,#}(f,cons2(x,xs)) -> app#(f,x)
       app#(curry2(x6,x5),x7) -> curry{3,#}(x6,x5,x7)
       curry{3,#}(g,x,y) -> app#(g,x)
      TRS:
       app(plus1(x6),x7) -> plus2(x6,x7)
       app(plus(),x7) -> plus1(x7)
       app(s(),x7) -> s1(x7)
       app(map1(x6),x7) -> map2(x6,x7)
       app(map(),x7) -> map1(x7)
       app(cons1(x6),x7) -> cons2(x6,x7)
       app(cons(),x7) -> cons1(x7)
       app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
       app(curry1(x6),x7) -> curry2(x6,x7)
       app(curry(),x7) -> curry1(x7)
       plus2(0(),y) -> y
       plus2(s1(x),y) -> s1(plus2(x,y))
       map2(f,nil()) -> nil()
       map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
       curry3(g,x,y) -> app(app(g,x),y)
      Matrix Interpretation Processor: dim=1
       
       usable rules:
        app(plus1(x6),x7) -> plus2(x6,x7)
        app(plus(),x7) -> plus1(x7)
        app(s(),x7) -> s1(x7)
        app(map1(x6),x7) -> map2(x6,x7)
        app(map(),x7) -> map1(x7)
        app(cons1(x6),x7) -> cons2(x6,x7)
        app(cons(),x7) -> cons1(x7)
        app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
        app(curry1(x6),x7) -> curry2(x6,x7)
        app(curry(),x7) -> curry1(x7)
        plus2(0(),y) -> y
        plus2(s1(x),y) -> s1(plus2(x,y))
        map2(f,nil()) -> nil()
        map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
        curry3(g,x,y) -> app(app(g,x),y)
       interpretation:
        [curry{3,#}](x0, x1, x2) = x0 + 2x1,
        
        [app#](x0, x1) = x0,
        
        [map{2,#}](x0, x1) = x0,
        
        [curry1](x0) = 2x0 + 2,
        
        [curry3](x0, x1, x2) = x0 + 2x1 + 2x2,
        
        [curry2](x0, x1) = x0 + 2x1 + 1,
        
        [cons2](x0, x1) = 0,
        
        [cons1](x0) = 2x0,
        
        [map2](x0, x1) = 2x1,
        
        [map1](x0) = x0,
        
        [s1](x0) = 1/2x0,
        
        [plus2](x0, x1) = 2x0 + 2x1,
        
        [plus1](x0) = 2x0,
        
        [curry] = 5/2,
        
        [cons] = 3/2,
        
        [nil] = 0,
        
        [map] = 2,
        
        [s] = 3,
        
        [app](x0, x1) = x0 + 2x1,
        
        [0] = 5/2,
        
        [plus] = 1
       orientation:
        curry{3,#}(g,x,y) = g + 2x >= g + 2x = app#(app(g,x),y)
        
        app#(map1(x6),x7) = x6 >= x6 = map{2,#}(x6,x7)
        
        map{2,#}(f,cons2(x,xs)) = f >= f = map{2,#}(f,xs)
        
        map{2,#}(f,cons2(x,xs)) = f >= f = app#(f,x)
        
        app#(curry2(x6,x5),x7) = 2x5 + x6 + 1 >= 2x5 + x6 = curry{3,#}(x6,x5,x7)
        
        curry{3,#}(g,x,y) = g + 2x >= g = app#(g,x)
        
        app(plus1(x6),x7) = 2x6 + 2x7 >= 2x6 + 2x7 = plus2(x6,x7)
        
        app(plus(),x7) = 2x7 + 1 >= 2x7 = plus1(x7)
        
        app(s(),x7) = 2x7 + 3 >= 1/2x7 = s1(x7)
        
        app(map1(x6),x7) = x6 + 2x7 >= 2x7 = map2(x6,x7)
        
        app(map(),x7) = 2x7 + 2 >= x7 = map1(x7)
        
        app(cons1(x6),x7) = 2x6 + 2x7 >= 0 = cons2(x6,x7)
        
        app(cons(),x7) = 2x7 + 3/2 >= 2x7 = cons1(x7)
        
        app(curry2(x6,x5),x7) = 2x5 + x6 + 2x7 + 1 >= 2x5 + x6 + 2x7 = curry3(x6,x5,x7)
        
        app(curry1(x6),x7) = 2x6 + 2x7 + 2 >= x6 + 2x7 + 1 = curry2(x6,x7)
        
        app(curry(),x7) = 2x7 + 5/2 >= 2x7 + 2 = curry1(x7)
        
        plus2(0(),y) = 2y + 5 >= y = y
        
        plus2(s1(x),y) = x + 2y >= x + y = s1(plus2(x,y))
        
        map2(f,nil()) = 0 >= 0 = nil()
        
        map2(f,cons2(x,xs)) = 0 >= 0 = cons2(app(f,x),map2(f,xs))
        
        curry3(g,x,y) = g + 2x + 2y >= g + 2x + 2y = app(app(g,x),y)
       problem:
        DPs:
         curry{3,#}(g,x,y) -> app#(app(g,x),y)
         app#(map1(x6),x7) -> map{2,#}(x6,x7)
         map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
         map{2,#}(f,cons2(x,xs)) -> app#(f,x)
         curry{3,#}(g,x,y) -> app#(g,x)
        TRS:
         app(plus1(x6),x7) -> plus2(x6,x7)
         app(plus(),x7) -> plus1(x7)
         app(s(),x7) -> s1(x7)
         app(map1(x6),x7) -> map2(x6,x7)
         app(map(),x7) -> map1(x7)
         app(cons1(x6),x7) -> cons2(x6,x7)
         app(cons(),x7) -> cons1(x7)
         app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
         app(curry1(x6),x7) -> curry2(x6,x7)
         app(curry(),x7) -> curry1(x7)
         plus2(0(),y) -> y
         plus2(s1(x),y) -> s1(plus2(x,y))
         map2(f,nil()) -> nil()
         map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
         curry3(g,x,y) -> app(app(g,x),y)
       Restore Modifier:
        DPs:
         curry{3,#}(g,x,y) -> app#(app(g,x),y)
         app#(map1(x6),x7) -> map{2,#}(x6,x7)
         map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
         map{2,#}(f,cons2(x,xs)) -> app#(f,x)
         curry{3,#}(g,x,y) -> app#(g,x)
        TRS:
         plus2(0(),y) -> y
         plus2(s1(x),y) -> s1(plus2(x,y))
         map2(f,nil()) -> nil()
         map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
         curry3(g,x,y) -> app(app(g,x),y)
         inc() -> map1(curry2(plus(),s1(0())))
         app(plus1(x6),x7) -> plus2(x6,x7)
         app(plus(),x7) -> plus1(x7)
         app(s(),x7) -> s1(x7)
         app(map1(x6),x7) -> map2(x6,x7)
         app(map(),x7) -> map1(x7)
         app(cons1(x6),x7) -> cons2(x6,x7)
         app(cons(),x7) -> cons1(x7)
         app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
         app(curry1(x6),x7) -> curry2(x6,x7)
         app(curry(),x7) -> curry1(x7)
        SCC Processor:
         #sccs: 1
         #rules: 3
         #arcs: 12/25
         DPs:
          app#(map1(x6),x7) -> map{2,#}(x6,x7)
          map{2,#}(f,cons2(x,xs)) -> map{2,#}(f,xs)
          map{2,#}(f,cons2(x,xs)) -> app#(f,x)
         TRS:
          plus2(0(),y) -> y
          plus2(s1(x),y) -> s1(plus2(x,y))
          map2(f,nil()) -> nil()
          map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
          curry3(g,x,y) -> app(app(g,x),y)
          inc() -> map1(curry2(plus(),s1(0())))
          app(plus1(x6),x7) -> plus2(x6,x7)
          app(plus(),x7) -> plus1(x7)
          app(s(),x7) -> s1(x7)
          app(map1(x6),x7) -> map2(x6,x7)
          app(map(),x7) -> map1(x7)
          app(cons1(x6),x7) -> cons2(x6,x7)
          app(cons(),x7) -> cons1(x7)
          app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
          app(curry1(x6),x7) -> curry2(x6,x7)
          app(curry(),x7) -> curry1(x7)
         Subterm Criterion Processor:
          simple projection:
           pi(map{2,#}) = 1
           pi(app#) = 1
          problem:
           DPs:
            app#(map1(x6),x7) -> map{2,#}(x6,x7)
           TRS:
            plus2(0(),y) -> y
            plus2(s1(x),y) -> s1(plus2(x,y))
            map2(f,nil()) -> nil()
            map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
            curry3(g,x,y) -> app(app(g,x),y)
            inc() -> map1(curry2(plus(),s1(0())))
            app(plus1(x6),x7) -> plus2(x6,x7)
            app(plus(),x7) -> plus1(x7)
            app(s(),x7) -> s1(x7)
            app(map1(x6),x7) -> map2(x6,x7)
            app(map(),x7) -> map1(x7)
            app(cons1(x6),x7) -> cons2(x6,x7)
            app(cons(),x7) -> cons1(x7)
            app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
            app(curry1(x6),x7) -> curry2(x6,x7)
            app(curry(),x7) -> curry1(x7)
          SCC Processor:
           #sccs: 0
           #rules: 0
           #arcs: 5/1
           
     
     DPs:
      plus{2,#}(s1(x),y) -> plus{2,#}(x,y)
     TRS:
      plus2(0(),y) -> y
      plus2(s1(x),y) -> s1(plus2(x,y))
      map2(f,nil()) -> nil()
      map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
      curry3(g,x,y) -> app(app(g,x),y)
      inc() -> map1(curry2(plus(),s1(0())))
      app(plus1(x6),x7) -> plus2(x6,x7)
      app(plus(),x7) -> plus1(x7)
      app(s(),x7) -> s1(x7)
      app(map1(x6),x7) -> map2(x6,x7)
      app(map(),x7) -> map1(x7)
      app(cons1(x6),x7) -> cons2(x6,x7)
      app(cons(),x7) -> cons1(x7)
      app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
      app(curry1(x6),x7) -> curry2(x6,x7)
      app(curry(),x7) -> curry1(x7)
     Subterm Criterion Processor:
      simple projection:
       pi(plus{2,#}) = 0
      problem:
       DPs:
        
       TRS:
        plus2(0(),y) -> y
        plus2(s1(x),y) -> s1(plus2(x,y))
        map2(f,nil()) -> nil()
        map2(f,cons2(x,xs)) -> cons2(app(f,x),map2(f,xs))
        curry3(g,x,y) -> app(app(g,x),y)
        inc() -> map1(curry2(plus(),s1(0())))
        app(plus1(x6),x7) -> plus2(x6,x7)
        app(plus(),x7) -> plus1(x7)
        app(s(),x7) -> s1(x7)
        app(map1(x6),x7) -> map2(x6,x7)
        app(map(),x7) -> map1(x7)
        app(cons1(x6),x7) -> cons2(x6,x7)
        app(cons(),x7) -> cons1(x7)
        app(curry2(x6,x5),x7) -> curry3(x6,x5,x7)
        app(curry1(x6),x7) -> curry2(x6,x7)
        app(curry(),x7) -> curry1(x7)
      Qed