MAYBE

Problem:
 app(app(app(if(),true()),xs),ys) -> xs
 app(app(app(if(),false()),xs),ys) -> ys
 app(app(sub(),x),0()) -> x
 app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
 app(app(gtr(),0()),y) -> false()
 app(app(gtr(),app(s(),x)),0()) -> true()
 app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
 app(app(d(),x),0()) -> true()
 app(app(d(),app(s(),x)),app(s(),y)) ->
 app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
 app(len(),nil()) -> 0()
 app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
 app(app(filter(),p),nil()) -> nil()
 app(app(filter(),p),app(app(cons(),x),xs)) ->
 app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))

Proof:
 DP Processor:
  DPs:
   app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x)
   app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
   app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
   app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y)
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x)
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x))
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y))
   app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false())
   app#(app(d(),app(s(),x)),app(s(),y)) ->
   app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
   app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs)
   app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs))
   app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs)
   app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs))
   app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x)
   app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x))
   app#(app(filter(),p),app(app(cons(),x),xs)) ->
   app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs)))
   app#(app(filter(),p),app(app(cons(),x),xs)) ->
   app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
  TRS:
   app(app(app(if(),true()),xs),ys) -> xs
   app(app(app(if(),false()),xs),ys) -> ys
   app(app(sub(),x),0()) -> x
   app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
   app(app(gtr(),0()),y) -> false()
   app(app(gtr(),app(s(),x)),0()) -> true()
   app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
   app(app(d(),x),0()) -> true()
   app(app(d(),app(s(),x)),app(s(),y)) ->
   app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
   app(len(),nil()) -> 0()
   app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
   app(app(filter(),p),nil()) -> nil()
   app(app(filter(),p),app(app(cons(),x),xs)) ->
   app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
  EDG Processor:
   DPs:
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x)
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false())
    app#(app(d(),app(s(),x)),app(s(),y)) ->
    app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
    app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs)
    app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x))
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs)))
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
   TRS:
    app(app(app(if(),true()),xs),ys) -> xs
    app(app(app(if(),false()),xs),ys) -> ys
    app(app(sub(),x),0()) -> x
    app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
    app(app(gtr(),0()),y) -> false()
    app(app(gtr(),app(s(),x)),0()) -> true()
    app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
    app(app(d(),x),0()) -> true()
    app(app(d(),app(s(),x)),app(s(),y)) ->
    app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
    app(len(),nil()) -> 0()
    app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
    app(app(filter(),p),nil()) -> nil()
    app(app(filter(),p),app(app(cons(),x),xs)) ->
    app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
   graph:
    app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) ->
    app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs)
    app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) ->
    app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs)))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false())
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(d(),app(s(),x)),app(s(),y)) ->
    app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x)
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs)))
    app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) ->
    app#(app(filter(),p),app(app(cons(),x),xs)) ->
    app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false())
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) ->
    app#(app(d(),app(s(),x)),app(s(),y)) ->
    app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x)
    app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x)
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) ->
    app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x)
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) ->
    app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
   SCC Processor:
    #sccs: 5
    #rules: 6
    #arcs: 44/400
    DPs:
     app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs)
     app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x)
    TRS:
     app(app(app(if(),true()),xs),ys) -> xs
     app(app(app(if(),false()),xs),ys) -> ys
     app(app(sub(),x),0()) -> x
     app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
     app(app(gtr(),0()),y) -> false()
     app(app(gtr(),app(s(),x)),0()) -> true()
     app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
     app(app(d(),x),0()) -> true()
     app(app(d(),app(s(),x)),app(s(),y)) ->
     app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
     app(len(),nil()) -> 0()
     app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
     app(app(filter(),p),nil()) -> nil()
     app(app(filter(),p),app(app(cons(),x),xs)) ->
     app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       
      TRS:
       app(app(app(if(),true()),xs),ys) -> xs
       app(app(app(if(),false()),xs),ys) -> ys
       app(app(sub(),x),0()) -> x
       app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
       app(app(gtr(),0()),y) -> false()
       app(app(gtr(),app(s(),x)),0()) -> true()
       app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
       app(app(d(),x),0()) -> true()
       app(app(d(),app(s(),x)),app(s(),y)) ->
       app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
       app(len(),nil()) -> 0()
       app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
       app(app(filter(),p),nil()) -> nil()
       app(app(filter(),p),app(app(cons(),x),xs)) ->
       app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),
           app(app(filter(),p),xs))
     Qed
    
    DPs:
     app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x))
    TRS:
     app(app(app(if(),true()),xs),ys) -> xs
     app(app(app(if(),false()),xs),ys) -> ys
     app(app(sub(),x),0()) -> x
     app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
     app(app(gtr(),0()),y) -> false()
     app(app(gtr(),app(s(),x)),0()) -> true()
     app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
     app(app(d(),x),0()) -> true()
     app(app(d(),app(s(),x)),app(s(),y)) ->
     app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
     app(len(),nil()) -> 0()
     app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
     app(app(filter(),p),nil()) -> nil()
     app(app(filter(),p),app(app(cons(),x),xs)) ->
     app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    Open
    
    DPs:
     app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y)
    TRS:
     app(app(app(if(),true()),xs),ys) -> xs
     app(app(app(if(),false()),xs),ys) -> ys
     app(app(sub(),x),0()) -> x
     app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
     app(app(gtr(),0()),y) -> false()
     app(app(gtr(),app(s(),x)),0()) -> true()
     app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
     app(app(d(),x),0()) -> true()
     app(app(d(),app(s(),x)),app(s(),y)) ->
     app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
     app(len(),nil()) -> 0()
     app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
     app(app(filter(),p),nil()) -> nil()
     app(app(filter(),p),app(app(cons(),x),xs)) ->
     app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       
      TRS:
       app(app(app(if(),true()),xs),ys) -> xs
       app(app(app(if(),false()),xs),ys) -> ys
       app(app(sub(),x),0()) -> x
       app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
       app(app(gtr(),0()),y) -> false()
       app(app(gtr(),app(s(),x)),0()) -> true()
       app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
       app(app(d(),x),0()) -> true()
       app(app(d(),app(s(),x)),app(s(),y)) ->
       app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
       app(len(),nil()) -> 0()
       app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
       app(app(filter(),p),nil()) -> nil()
       app(app(filter(),p),app(app(cons(),x),xs)) ->
       app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),
           app(app(filter(),p),xs))
     Qed
    
    DPs:
     app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y)
    TRS:
     app(app(app(if(),true()),xs),ys) -> xs
     app(app(app(if(),false()),xs),ys) -> ys
     app(app(sub(),x),0()) -> x
     app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
     app(app(gtr(),0()),y) -> false()
     app(app(gtr(),app(s(),x)),0()) -> true()
     app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
     app(app(d(),x),0()) -> true()
     app(app(d(),app(s(),x)),app(s(),y)) ->
     app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
     app(len(),nil()) -> 0()
     app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
     app(app(filter(),p),nil()) -> nil()
     app(app(filter(),p),app(app(cons(),x),xs)) ->
     app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       
      TRS:
       app(app(app(if(),true()),xs),ys) -> xs
       app(app(app(if(),false()),xs),ys) -> ys
       app(app(sub(),x),0()) -> x
       app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
       app(app(gtr(),0()),y) -> false()
       app(app(gtr(),app(s(),x)),0()) -> true()
       app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
       app(app(d(),x),0()) -> true()
       app(app(d(),app(s(),x)),app(s(),y)) ->
       app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
       app(len(),nil()) -> 0()
       app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
       app(app(filter(),p),nil()) -> nil()
       app(app(filter(),p),app(app(cons(),x),xs)) ->
       app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),
           app(app(filter(),p),xs))
     Qed
    
    DPs:
     app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs)
    TRS:
     app(app(app(if(),true()),xs),ys) -> xs
     app(app(app(if(),false()),xs),ys) -> ys
     app(app(sub(),x),0()) -> x
     app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
     app(app(gtr(),0()),y) -> false()
     app(app(gtr(),app(s(),x)),0()) -> true()
     app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
     app(app(d(),x),0()) -> true()
     app(app(d(),app(s(),x)),app(s(),y)) ->
     app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
     app(len(),nil()) -> 0()
     app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
     app(app(filter(),p),nil()) -> nil()
     app(app(filter(),p),app(app(cons(),x),xs)) ->
     app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs))
    Subterm Criterion Processor:
     simple projection:
      pi(app#) = 1
     problem:
      DPs:
       
      TRS:
       app(app(app(if(),true()),xs),ys) -> xs
       app(app(app(if(),false()),xs),ys) -> ys
       app(app(sub(),x),0()) -> x
       app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y)
       app(app(gtr(),0()),y) -> false()
       app(app(gtr(),app(s(),x)),0()) -> true()
       app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y)
       app(app(d(),x),0()) -> true()
       app(app(d(),app(s(),x)),app(s(),y)) ->
       app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x)))
       app(len(),nil()) -> 0()
       app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs))
       app(app(filter(),p),nil()) -> nil()
       app(app(filter(),p),app(app(cons(),x),xs)) ->
       app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),
           app(app(filter(),p),xs))
     Qed