YES

Problem:
 app(app(app(if(),true()),x),y) -> x
 app(app(app(if(),false()),x),y) -> y
 app(app(filter(),f),nil()) -> nil()
 app(app(filter(),f),app(app(cons(),x),xs)) ->
 app(app(app(if(),app(f,x)),app(app(cons(),x),app(app(filter(),f),xs))),app(app(filter(),f),xs))

Proof:
 Uncurry Processor:
  if3(true(),x,y) -> x
  if3(false(),x,y) -> y
  filter2(f,nil()) -> nil()
  filter2(f,cons2(x,xs)) -> if3(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
  app(if2(x5,x4),x6) -> if3(x5,x4,x6)
  app(if1(x5),x6) -> if2(x5,x6)
  app(if(),x6) -> if1(x6)
  app(filter1(x5),x6) -> filter2(x5,x6)
  app(filter(),x6) -> filter1(x6)
  app(cons1(x5),x6) -> cons2(x5,x6)
  app(cons(),x6) -> cons1(x6)
  DP Processor:
   DPs:
    filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs)
    filter{2,#}(f,cons2(x,xs)) -> app#(f,x)
    filter{2,#}(f,cons2(x,xs)) -> if{3,#}(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
    app#(if2(x5,x4),x6) -> if{3,#}(x5,x4,x6)
    app#(filter1(x5),x6) -> filter{2,#}(x5,x6)
   TRS:
    if3(true(),x,y) -> x
    if3(false(),x,y) -> y
    filter2(f,nil()) -> nil()
    filter2(f,cons2(x,xs)) -> if3(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
    app(if2(x5,x4),x6) -> if3(x5,x4,x6)
    app(if1(x5),x6) -> if2(x5,x6)
    app(if(),x6) -> if1(x6)
    app(filter1(x5),x6) -> filter2(x5,x6)
    app(filter(),x6) -> filter1(x6)
    app(cons1(x5),x6) -> cons2(x5,x6)
    app(cons(),x6) -> cons1(x6)
   TDG Processor:
    DPs:
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs)
     filter{2,#}(f,cons2(x,xs)) -> app#(f,x)
     filter{2,#}(f,cons2(x,xs)) -> if{3,#}(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
     app#(if2(x5,x4),x6) -> if{3,#}(x5,x4,x6)
     app#(filter1(x5),x6) -> filter{2,#}(x5,x6)
    TRS:
     if3(true(),x,y) -> x
     if3(false(),x,y) -> y
     filter2(f,nil()) -> nil()
     filter2(f,cons2(x,xs)) -> if3(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
     app(if2(x5,x4),x6) -> if3(x5,x4,x6)
     app(if1(x5),x6) -> if2(x5,x6)
     app(if(),x6) -> if1(x6)
     app(filter1(x5),x6) -> filter2(x5,x6)
     app(filter(),x6) -> filter1(x6)
     app(cons1(x5),x6) -> cons2(x5,x6)
     app(cons(),x6) -> cons1(x6)
    graph:
     app#(filter1(x5),x6) -> filter{2,#}(x5,x6) ->
     filter{2,#}(f,cons2(x,xs)) -> if{3,#}(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
     app#(filter1(x5),x6) -> filter{2,#}(x5,x6) ->
     filter{2,#}(f,cons2(x,xs)) -> app#(f,x)
     app#(filter1(x5),x6) -> filter{2,#}(x5,x6) ->
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs)
     filter{2,#}(f,cons2(x,xs)) -> app#(f,x) ->
     app#(filter1(x5),x6) -> filter{2,#}(x5,x6)
     filter{2,#}(f,cons2(x,xs)) -> app#(f,x) ->
     app#(if2(x5,x4),x6) -> if{3,#}(x5,x4,x6)
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs) ->
     filter{2,#}(f,cons2(x,xs)) -> if{3,#}(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs) ->
     filter{2,#}(f,cons2(x,xs)) -> app#(f,x)
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs) ->
     filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs)
    SCC Processor:
     #sccs: 1
     #rules: 3
     #arcs: 8/25
     DPs:
      app#(filter1(x5),x6) -> filter{2,#}(x5,x6)
      filter{2,#}(f,cons2(x,xs)) -> filter{2,#}(f,xs)
      filter{2,#}(f,cons2(x,xs)) -> app#(f,x)
     TRS:
      if3(true(),x,y) -> x
      if3(false(),x,y) -> y
      filter2(f,nil()) -> nil()
      filter2(f,cons2(x,xs)) -> if3(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
      app(if2(x5,x4),x6) -> if3(x5,x4,x6)
      app(if1(x5),x6) -> if2(x5,x6)
      app(if(),x6) -> if1(x6)
      app(filter1(x5),x6) -> filter2(x5,x6)
      app(filter(),x6) -> filter1(x6)
      app(cons1(x5),x6) -> cons2(x5,x6)
      app(cons(),x6) -> cons1(x6)
     Subterm Criterion Processor:
      simple projection:
       pi(filter{2,#}) = 1
       pi(app#) = 1
      problem:
       DPs:
        app#(filter1(x5),x6) -> filter{2,#}(x5,x6)
       TRS:
        if3(true(),x,y) -> x
        if3(false(),x,y) -> y
        filter2(f,nil()) -> nil()
        filter2(f,cons2(x,xs)) -> if3(app(f,x),cons2(x,filter2(f,xs)),filter2(f,xs))
        app(if2(x5,x4),x6) -> if3(x5,x4,x6)
        app(if1(x5),x6) -> if2(x5,x6)
        app(if(),x6) -> if1(x6)
        app(filter1(x5),x6) -> filter2(x5,x6)
        app(filter(),x6) -> filter1(x6)
        app(cons1(x5),x6) -> cons2(x5,x6)
        app(cons(),x6) -> cons1(x6)
      SCC Processor:
       #sccs: 0
       #rules: 0
       #arcs: 5/1