YES

Problem:
 app(f(),0()) -> true()
 app(f(),1()) -> false()
 app(f(),app(s(),x)) -> app(f(),x)
 app(app(app(if(),true()),app(s(),x)),app(s(),y)) -> app(s(),x)
 app(app(app(if(),false()),app(s(),x)),app(s(),y)) -> app(s(),y)
 app(app(g(),x),app(c(),y)) -> app(c(),app(app(g(),x),y))
 app(app(g(),x),app(c(),y)) ->
 app(app(g(),x),app(app(app(if(),app(f(),x)),app(c(),app(app(g(),app(s(),x)),y))),app(c(),y)))
 app(app(map(),fun),nil()) -> nil()
 app(app(map(),fun),app(app(cons(),x),xs)) -> app(app(cons(),app(fun,x)),app(app(map(),fun),xs))
 app(app(filter(),fun),nil()) -> nil()
 app(app(filter(),fun),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(fun,x)),fun),x),xs)
 app(app(app(app(filter2(),true()),fun),x),xs) -> app(app(cons(),x),app(app(filter(),fun),xs))
 app(app(app(app(filter2(),false()),fun),x),xs) -> app(app(filter(),fun),xs)

Proof:
 Uncurry Processor:
  f1(0()) -> true()
  f1(1()) -> false()
  f1(s1(x)) -> f1(x)
  if3(true(),s1(x),s1(y)) -> s1(x)
  if3(false(),s1(x),s1(y)) -> s1(y)
  g2(x,c1(y)) -> c1(g2(x,y))
  g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
  map2(fun,nil()) -> nil()
  map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
  filter2(fun,nil()) -> nil()
  filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
  filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
  filter24(false(),fun,x,xs) -> filter2(fun,xs)
  app(f(),x7) -> f1(x7)
  app(s(),x7) -> s1(x7)
  app(if2(x6,x5),x7) -> if3(x6,x5,x7)
  app(if1(x6),x7) -> if2(x6,x7)
  app(if(),x7) -> if1(x7)
  app(g1(x6),x7) -> g2(x6,x7)
  app(g(),x7) -> g1(x7)
  app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
  app(filter(),x7) -> filter1(x7)
  app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
  app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
  app(filter21(x6),x7) -> filter22(x6,x7)
  app(filter2(),x7) -> filter21(x7)
  DP Processor:
   DPs:
    f{1,#}(s1(x)) -> f{1,#}(x)
    g{2,#}(x,c1(y)) -> g{2,#}(x,y)
    g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
    g{2,#}(x,c1(y)) -> f{1,#}(x)
    g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
    g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
    map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs)
    map{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
    filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
    filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
    filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
    filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
    app#(f(),x7) -> f{1,#}(x7)
    app#(if2(x6,x5),x7) -> if{3,#}(x6,x5,x7)
    app#(g1(x6),x7) -> g{2,#}(x6,x7)
    app#(map1(x6),x7) -> map{2,#}(x6,x7)
    app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
    app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
   TRS:
    f1(0()) -> true()
    f1(1()) -> false()
    f1(s1(x)) -> f1(x)
    if3(true(),s1(x),s1(y)) -> s1(x)
    if3(false(),s1(x),s1(y)) -> s1(y)
    g2(x,c1(y)) -> c1(g2(x,y))
    g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
    map2(fun,nil()) -> nil()
    map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
    filter2(fun,nil()) -> nil()
    filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
    filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
    filter24(false(),fun,x,xs) -> filter2(fun,xs)
    app(f(),x7) -> f1(x7)
    app(s(),x7) -> s1(x7)
    app(if2(x6,x5),x7) -> if3(x6,x5,x7)
    app(if1(x6),x7) -> if2(x6,x7)
    app(if(),x7) -> if1(x7)
    app(g1(x6),x7) -> g2(x6,x7)
    app(g(),x7) -> g1(x7)
    app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
    app(filter(),x7) -> filter1(x7)
    app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
    app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
    app(filter21(x6),x7) -> filter22(x6,x7)
    app(filter2(),x7) -> filter21(x7)
   TDG Processor:
    DPs:
     f{1,#}(s1(x)) -> f{1,#}(x)
     g{2,#}(x,c1(y)) -> g{2,#}(x,y)
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
     g{2,#}(x,c1(y)) -> f{1,#}(x)
     g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
     filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
     filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
     app#(f(),x7) -> f{1,#}(x7)
     app#(if2(x6,x5),x7) -> if{3,#}(x6,x5,x7)
     app#(g1(x6),x7) -> g{2,#}(x6,x7)
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
     app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
    TRS:
     f1(0()) -> true()
     f1(1()) -> false()
     f1(s1(x)) -> f1(x)
     if3(true(),s1(x),s1(y)) -> s1(x)
     if3(false(),s1(x),s1(y)) -> s1(y)
     g2(x,c1(y)) -> c1(g2(x,y))
     g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     map2(fun,nil()) -> nil()
     map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
     filter2(fun,nil()) -> nil()
     filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
     filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
     filter24(false(),fun,x,xs) -> filter2(fun,xs)
     app(f(),x7) -> f1(x7)
     app(s(),x7) -> s1(x7)
     app(if2(x6,x5),x7) -> if3(x6,x5,x7)
     app(if1(x6),x7) -> if2(x6,x7)
     app(if(),x7) -> if1(x7)
     app(g1(x6),x7) -> g2(x6,x7)
     app(g(),x7) -> g1(x7)
     app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
     app(filter(),x7) -> filter1(x7)
     app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
     app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
     app(filter21(x6),x7) -> filter22(x6,x7)
     app(filter2(),x7) -> filter21(x7)
    graph:
     filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs) ->
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
     filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs) ->
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs) ->
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
     filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs) ->
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs) ->
     filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs) ->
     filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(g1(x6),x7) -> g{2,#}(x6,x7)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(if2(x6,x5),x7) -> if{3,#}(x6,x5,x7)
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(f(),x7) -> f{1,#}(x7)
     app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) ->
     filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
     app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7) ->
     filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
     app#(filter1(x6),x7) -> filter{2,#}(x6,x7) ->
     filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
     app#(filter1(x6),x7) -> filter{2,#}(x6,x7) ->
     filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     app#(map1(x6),x7) -> map{2,#}(x6,x7) ->
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     app#(map1(x6),x7) -> map{2,#}(x6,x7) ->
     map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs)
     app#(g1(x6),x7) -> g{2,#}(x6,x7) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     app#(g1(x6),x7) -> g{2,#}(x6,x7) ->
     g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
     app#(g1(x6),x7) -> g{2,#}(x6,x7) ->
     g{2,#}(x,c1(y)) -> f{1,#}(x)
     app#(g1(x6),x7) -> g{2,#}(x6,x7) ->
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
     app#(g1(x6),x7) -> g{2,#}(x6,x7) -> g{2,#}(x,c1(y)) -> g{2,#}(x,y)
     app#(f(),x7) -> f{1,#}(x7) ->
     f{1,#}(s1(x)) -> f{1,#}(x)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(map1(x6),x7) -> map{2,#}(x6,x7)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(g1(x6),x7) -> g{2,#}(x6,x7)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(if2(x6,x5),x7) -> if{3,#}(x6,x5,x7)
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x) ->
     app#(f(),x7) -> f{1,#}(x7)
     map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs) ->
     map{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
     map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs) ->
     map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs)
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
     g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
     g{2,#}(x,c1(y)) -> f{1,#}(x)
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,y)
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y))) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y))) ->
     g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y))) ->
     g{2,#}(x,c1(y)) -> f{1,#}(x)
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y))) ->
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y))) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,y)
     g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
     g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
     g{2,#}(x,c1(y)) -> if{3,#}(f1(x),c1(g2(s1(x),y)),c1(y))
     g{2,#}(x,c1(y)) -> g{2,#}(x,y) -> g{2,#}(x,c1(y)) -> f{1,#}(x)
     g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
     g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
     g{2,#}(x,c1(y)) -> g{2,#}(x,y) -> g{2,#}(x,c1(y)) -> g{2,#}(x,y)
     g{2,#}(x,c1(y)) -> f{1,#}(x) -> f{1,#}(s1(x)) -> f{1,#}(x)
     f{1,#}(s1(x)) -> f{1,#}(x) -> f{1,#}(s1(x)) -> f{1,#}(x)
    SCC Processor:
     #sccs: 3
     #rules: 13
     #arcs: 49/324
     DPs:
      filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
      filter{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
      app#(map1(x6),x7) -> map{2,#}(x6,x7)
      map{2,#}(fun,cons2(x,xs)) -> map{2,#}(fun,xs)
      map{2,#}(fun,cons2(x,xs)) -> app#(fun,x)
      app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
      filter{2,#}(fun,cons2(x,xs)) -> filter2{4,#}(app(fun,x),fun,x,xs)
      filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
      app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
     TRS:
      f1(0()) -> true()
      f1(1()) -> false()
      f1(s1(x)) -> f1(x)
      if3(true(),s1(x),s1(y)) -> s1(x)
      if3(false(),s1(x),s1(y)) -> s1(y)
      g2(x,c1(y)) -> c1(g2(x,y))
      g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
      map2(fun,nil()) -> nil()
      map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
      filter2(fun,nil()) -> nil()
      filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
      filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
      filter24(false(),fun,x,xs) -> filter2(fun,xs)
      app(f(),x7) -> f1(x7)
      app(s(),x7) -> s1(x7)
      app(if2(x6,x5),x7) -> if3(x6,x5,x7)
      app(if1(x6),x7) -> if2(x6,x7)
      app(if(),x7) -> if1(x7)
      app(g1(x6),x7) -> g2(x6,x7)
      app(g(),x7) -> g1(x7)
      app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
      app(filter(),x7) -> filter1(x7)
      app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
      app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
      app(filter21(x6),x7) -> filter22(x6,x7)
      app(filter2(),x7) -> filter21(x7)
     Subterm Criterion Processor:
      simple projection:
       pi(map{2,#}) = 1
       pi(app#) = 1
       pi(filter{2,#}) = 1
       pi(filter2{4,#}) = 3
      problem:
       DPs:
        filter2{4,#}(false(),fun,x,xs) -> filter{2,#}(fun,xs)
        app#(map1(x6),x7) -> map{2,#}(x6,x7)
        app#(filter1(x6),x7) -> filter{2,#}(x6,x7)
        filter2{4,#}(true(),fun,x,xs) -> filter{2,#}(fun,xs)
        app#(filter23(x6,x5,x4),x7) -> filter2{4,#}(x6,x5,x4,x7)
       TRS:
        f1(0()) -> true()
        f1(1()) -> false()
        f1(s1(x)) -> f1(x)
        if3(true(),s1(x),s1(y)) -> s1(x)
        if3(false(),s1(x),s1(y)) -> s1(y)
        g2(x,c1(y)) -> c1(g2(x,y))
        g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
        map2(fun,nil()) -> nil()
        map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
        filter2(fun,nil()) -> nil()
        filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
        filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
        filter24(false(),fun,x,xs) -> filter2(fun,xs)
        app(f(),x7) -> f1(x7)
        app(s(),x7) -> s1(x7)
        app(if2(x6,x5),x7) -> if3(x6,x5,x7)
        app(if1(x6),x7) -> if2(x6,x7)
        app(if(),x7) -> if1(x7)
        app(g1(x6),x7) -> g2(x6,x7)
        app(g(),x7) -> g1(x7)
        app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
        app(filter(),x7) -> filter1(x7)
        app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
        app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
        app(filter21(x6),x7) -> filter22(x6,x7)
        app(filter2(),x7) -> filter21(x7)
      SCC Processor:
       #sccs: 0
       #rules: 0
       #arcs: 20/25
       
     
     DPs:
      g{2,#}(x,c1(y)) -> g{2,#}(x,y)
      g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
      g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
     TRS:
      f1(0()) -> true()
      f1(1()) -> false()
      f1(s1(x)) -> f1(x)
      if3(true(),s1(x),s1(y)) -> s1(x)
      if3(false(),s1(x),s1(y)) -> s1(y)
      g2(x,c1(y)) -> c1(g2(x,y))
      g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
      map2(fun,nil()) -> nil()
      map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
      filter2(fun,nil()) -> nil()
      filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
      filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
      filter24(false(),fun,x,xs) -> filter2(fun,xs)
      app(f(),x7) -> f1(x7)
      app(s(),x7) -> s1(x7)
      app(if2(x6,x5),x7) -> if3(x6,x5,x7)
      app(if1(x6),x7) -> if2(x6,x7)
      app(if(),x7) -> if1(x7)
      app(g1(x6),x7) -> g2(x6,x7)
      app(g(),x7) -> g1(x7)
      app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
      app(filter(),x7) -> filter1(x7)
      app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
      app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
      app(filter21(x6),x7) -> filter22(x6,x7)
      app(filter2(),x7) -> filter21(x7)
     EDG Processor:
      DPs:
       g{2,#}(x,c1(y)) -> g{2,#}(x,y)
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
       g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
      TRS:
       f1(0()) -> true()
       f1(1()) -> false()
       f1(s1(x)) -> f1(x)
       if3(true(),s1(x),s1(y)) -> s1(x)
       if3(false(),s1(x),s1(y)) -> s1(y)
       g2(x,c1(y)) -> c1(g2(x,y))
       g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
       map2(fun,nil()) -> nil()
       map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
       filter2(fun,nil()) -> nil()
       filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
       filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
       filter24(false(),fun,x,xs) -> filter2(fun,xs)
       app(f(),x7) -> f1(x7)
       app(s(),x7) -> s1(x7)
       app(if2(x6,x5),x7) -> if3(x6,x5,x7)
       app(if1(x6),x7) -> if2(x6,x7)
       app(if(),x7) -> if1(x7)
       app(g1(x6),x7) -> g2(x6,x7)
       app(g(),x7) -> g1(x7)
       app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
       app(filter(),x7) -> filter1(x7)
       app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
       app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
       app(filter21(x6),x7) -> filter22(x6,x7)
       app(filter2(),x7) -> filter21(x7)
      graph:
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(x,y)
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
       g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(x,y)
       g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
       g{2,#}(x,c1(y)) -> g{2,#}(x,y) ->
       g{2,#}(x,c1(y)) -> g{2,#}(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
      SCC Processor:
       #sccs: 1
       #rules: 2
       #arcs: 6/9
       DPs:
        g{2,#}(x,c1(y)) -> g{2,#}(s1(x),y)
        g{2,#}(x,c1(y)) -> g{2,#}(x,y)
       TRS:
        f1(0()) -> true()
        f1(1()) -> false()
        f1(s1(x)) -> f1(x)
        if3(true(),s1(x),s1(y)) -> s1(x)
        if3(false(),s1(x),s1(y)) -> s1(y)
        g2(x,c1(y)) -> c1(g2(x,y))
        g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
        map2(fun,nil()) -> nil()
        map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
        filter2(fun,nil()) -> nil()
        filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
        filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
        filter24(false(),fun,x,xs) -> filter2(fun,xs)
        app(f(),x7) -> f1(x7)
        app(s(),x7) -> s1(x7)
        app(if2(x6,x5),x7) -> if3(x6,x5,x7)
        app(if1(x6),x7) -> if2(x6,x7)
        app(if(),x7) -> if1(x7)
        app(g1(x6),x7) -> g2(x6,x7)
        app(g(),x7) -> g1(x7)
        app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
        app(filter(),x7) -> filter1(x7)
        app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
        app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
        app(filter21(x6),x7) -> filter22(x6,x7)
        app(filter2(),x7) -> filter21(x7)
       Subterm Criterion Processor:
        simple projection:
         pi(g{2,#}) = 1
        problem:
         DPs:
          
         TRS:
          f1(0()) -> true()
          f1(1()) -> false()
          f1(s1(x)) -> f1(x)
          if3(true(),s1(x),s1(y)) -> s1(x)
          if3(false(),s1(x),s1(y)) -> s1(y)
          g2(x,c1(y)) -> c1(g2(x,y))
          g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
          map2(fun,nil()) -> nil()
          map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
          filter2(fun,nil()) -> nil()
          filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
          filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
          filter24(false(),fun,x,xs) -> filter2(fun,xs)
          app(f(),x7) -> f1(x7)
          app(s(),x7) -> s1(x7)
          app(if2(x6,x5),x7) -> if3(x6,x5,x7)
          app(if1(x6),x7) -> if2(x6,x7)
          app(if(),x7) -> if1(x7)
          app(g1(x6),x7) -> g2(x6,x7)
          app(g(),x7) -> g1(x7)
          app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
          app(filter(),x7) -> filter1(x7)
          app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
          app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
          app(filter21(x6),x7) -> filter22(x6,x7)
          app(filter2(),x7) -> filter21(x7)
        Qed
     
     DPs:
      f{1,#}(s1(x)) -> f{1,#}(x)
     TRS:
      f1(0()) -> true()
      f1(1()) -> false()
      f1(s1(x)) -> f1(x)
      if3(true(),s1(x),s1(y)) -> s1(x)
      if3(false(),s1(x),s1(y)) -> s1(y)
      g2(x,c1(y)) -> c1(g2(x,y))
      g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
      map2(fun,nil()) -> nil()
      map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
      filter2(fun,nil()) -> nil()
      filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
      filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
      filter24(false(),fun,x,xs) -> filter2(fun,xs)
      app(f(),x7) -> f1(x7)
      app(s(),x7) -> s1(x7)
      app(if2(x6,x5),x7) -> if3(x6,x5,x7)
      app(if1(x6),x7) -> if2(x6,x7)
      app(if(),x7) -> if1(x7)
      app(g1(x6),x7) -> g2(x6,x7)
      app(g(),x7) -> g1(x7)
      app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
      app(filter(),x7) -> filter1(x7)
      app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
      app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
      app(filter21(x6),x7) -> filter22(x6,x7)
      app(filter2(),x7) -> filter21(x7)
     Subterm Criterion Processor:
      simple projection:
       pi(f{1,#}) = 0
      problem:
       DPs:
        
       TRS:
        f1(0()) -> true()
        f1(1()) -> false()
        f1(s1(x)) -> f1(x)
        if3(true(),s1(x),s1(y)) -> s1(x)
        if3(false(),s1(x),s1(y)) -> s1(y)
        g2(x,c1(y)) -> c1(g2(x,y))
        g2(x,c1(y)) -> g2(x,if3(f1(x),c1(g2(s1(x),y)),c1(y)))
        map2(fun,nil()) -> nil()
        map2(fun,cons2(x,xs)) -> cons2(app(fun,x),map2(fun,xs))
        filter2(fun,nil()) -> nil()
        filter2(fun,cons2(x,xs)) -> filter24(app(fun,x),fun,x,xs)
        filter24(true(),fun,x,xs) -> cons2(x,filter2(fun,xs))
        filter24(false(),fun,x,xs) -> filter2(fun,xs)
        app(f(),x7) -> f1(x7)
        app(s(),x7) -> s1(x7)
        app(if2(x6,x5),x7) -> if3(x6,x5,x7)
        app(if1(x6),x7) -> if2(x6,x7)
        app(if(),x7) -> if1(x7)
        app(g1(x6),x7) -> g2(x6,x7)
        app(g(),x7) -> g1(x7)
        app(c(),x7) -> c1(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(filter1(x6),x7) -> filter2(x6,x7)
        app(filter(),x7) -> filter1(x7)
        app(filter23(x6,x5,x4),x7) -> filter24(x6,x5,x4,x7)
        app(filter22(x6,x5),x7) -> filter23(x6,x5,x7)
        app(filter21(x6),x7) -> filter22(x6,x7)
        app(filter2(),x7) -> filter21(x7)
      Qed