MAYBE

Problem:
 app(app(times(),x),0()) -> 0()
 app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
 app(app(plus(),x),0()) -> x
 app(app(plus(),0()),x) -> x
 app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
 app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
 app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
 app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)

Proof:
 DP Processor:
  DPs:
   app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
   app#(app(times(),x),app(s(),y)) -> app#(plus(),app(app(times(),x),y))
   app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x)
   app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
   app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
   app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
   app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
   app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
   app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
   app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
   app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x))
   app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs))
   app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
   app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
   app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
   app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
   app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
   app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f)
   app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
   app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x)
   app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs))
   app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f)
   app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
  TRS:
   app(app(times(),x),0()) -> 0()
   app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
   app(app(plus(),x),0()) -> x
   app(app(plus(),0()),x) -> x
   app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
   app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
   app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
   app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
  EDG Processor:
   DPs:
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
    app#(app(times(),x),app(s(),y)) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x)
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs))
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f)
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
   TRS:
    app(app(times(),x),0()) -> 0()
    app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
    app(app(plus(),x),0()) -> x
    app(app(plus(),0()),x) -> x
    app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
    app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
    app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
    app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
   graph:
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(plus(),app(app(times(),x),y))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs))
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f)
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(plus(),app(app(times(),x),y))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs))
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f)
    app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) ->
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y) ->
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y) ->
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
    app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x))
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x)
    app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) ->
    app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x) ->
    app#(app(plus(),x),app(s(),y)) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y) ->
    app#(app(times(),x),app(s(),y)) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y) ->
    app#(app(times(),x),app(s(),y)) -> app#(app(plus(),app(app(times(),x),y)),x)
   SCC Processor:
    #sccs: 3
    #rules: 9
    #arcs: 84/529
    DPs:
     app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs)
     app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
     app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x)
     app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
     app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x)
     app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs)
    TRS:
     app(app(times(),x),0()) -> 0()
     app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
     app(app(plus(),x),0()) -> x
     app(app(plus(),0()),x) -> x
     app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
     app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
     app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
     app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs)
       app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs)
      TRS:
       app(app(times(),x),0()) -> 0()
       app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
       app(app(plus(),x),0()) -> x
       app(app(plus(),0()),x) -> x
       app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
       app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
       app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
       app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
     SCC Processor:
      #sccs: 0
      #rules: 0
      #arcs: 20/4
      
    
    DPs:
     app#(app(times(),x),app(s(),y)) -> app#(app(times(),x),y)
    TRS:
     app(app(times(),x),0()) -> 0()
     app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
     app(app(plus(),x),0()) -> x
     app(app(plus(),0()),x) -> x
     app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
     app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
     app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
     app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       
      TRS:
       app(app(times(),x),0()) -> 0()
       app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
       app(app(plus(),x),0()) -> x
       app(app(plus(),0()),x) -> x
       app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
       app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
       app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
       app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
     Qed
    
    DPs:
     app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
     app#(app(plus(),x),app(s(),y)) -> app#(app(plus(),x),y)
    TRS:
     app(app(times(),x),0()) -> 0()
     app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
     app(app(plus(),x),0()) -> x
     app(app(plus(),0()),x) -> x
     app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
     app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
     app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
     app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      TRS:
       app(app(times(),x),0()) -> 0()
       app(app(times(),x),app(s(),y)) -> app(app(plus(),app(app(times(),x),y)),x)
       app(app(plus(),x),0()) -> x
       app(app(plus(),0()),x) -> x
       app(app(plus(),x),app(s(),y)) -> app(s(),app(app(plus(),x),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(filter(),f),nil()) -> nil()
       app(app(filter(),f),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(f,x)),f),x),xs)
       app(app(app(app(filter2(),true()),f),x),xs) -> app(app(cons(),x),app(app(filter(),f),xs))
       app(app(app(app(filter2(),false()),f),x),xs) -> app(app(filter(),f),xs)
     Open