YES

Problem:
 app(app(plus(),0()),y) -> y
 app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
 app(app(times(),0()),y) -> 0()
 app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
 app(app(app(curry(),g),x),y) -> app(app(g,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))
 inc() -> app(map(),app(app(curry(),plus()),app(s(),0())))
 double() -> app(map(),app(app(curry(),times()),app(s(),app(s(),0()))))

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