YES
TRS:
 { 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),
             app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
       app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                         app(app(map(), 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(filter(), f), nil()) -> nil()}
 DP:
  Strict:
   { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(cons(), x), app(app(filter(), f), xs)),
     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#(filter(), f),
    app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs),
    app#(app(app(app(filter2(), false()), f), x), xs) -> app#(filter(), f),
               app#(app(*(), x), app(app(+(), y), z)) -> app#(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
               app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y),
               app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z),
               app#(app(*(), x), app(app(+(), y), z)) -> app#(+(), app(app(*(), 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#(app(cons(), app(f, x)), app(app(map(), f), xs)),
         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(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#(app(app(filter2(), app(f, x)), 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#(filter2(), app(f, x))}
  Weak:
  { 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),
              app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
        app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                          app(app(map(), 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(filter(), f), nil()) -> nil()}
  EDG:
   {(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(), false()), f), x), xs) -> app#(app(filter(), f), xs), 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(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#(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(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y), app#(app(*(), x), app(app(+(), y), z)) -> app#(+(), app(app(*(), x), y)))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(+(), app(app(*(), x), y)), app(app(*(), x), z)))
    (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(filter(), 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(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(*(), x), app(app(+(), y), z)) -> app#(+(), app(app(*(), x), y)))
    (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z))
    (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y))
    (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(+(), app(app(*(), x), y)), app(app(*(), x), z)))
    (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(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#(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(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(cons(), x), 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#(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(), 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#(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(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(*(), x), app(app(+(), y), z)) -> app#(app(+(), app(app(*(), x), y)), app(app(*(), x), z)))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(*(), x), app(app(+(), y), z)) -> app#(+(), app(app(*(), x), y)))
    (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#(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(cons(), app(f, x)), 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#(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#(app(app(app(filter2(), app(f, x)), f), x), xs))
    (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(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#(filter2(), app(f, x)))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(+(), app(app(*(), x), y)), app(app(*(), x), z)))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z))
    (app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z), app#(app(*(), x), app(app(+(), y), z)) -> app#(+(), app(app(*(), x), y)))
    (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#(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(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(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#(filter2(), app(f, x)))}
   SCCS:
    Scc:
     {app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y),
      app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z)}
    Scc:
     { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
      app#(app(app(app(filter2(), false()), 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),
        app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)}
    SCC:
     Strict:
      {app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), y),
       app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z)}
     Weak:
     { 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),
                 app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
           app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                             app(app(map(), 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(filter(), f), nil()) -> nil()}
     SPSC:
      Simple Projection:
       pi(app#) = 1
      Strict:
       {app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z)}
      EDG:
       {(app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z), app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z))}
       SCCS:
        Scc:
         {app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z)}
        SCC:
         Strict:
          {app#(app(*(), x), app(app(+(), y), z)) -> app#(app(*(), x), z)}
         Weak:
         { 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),
                     app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
               app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                                 app(app(map(), 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(filter(), f), nil()) -> nil()}
         SPSC:
          Simple Projection:
           pi(app#) = 1
          Strict:
           {}
          Qed
    SCC:
     Strict:
      { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
       app#(app(app(app(filter2(), false()), 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),
         app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)}
     Weak:
     { 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),
                 app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
           app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                             app(app(map(), 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(filter(), f), nil()) -> nil()}
     SPSC:
      Simple Projection:
       pi(app#) = 1
      Strict:
       { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
        app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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)}
      EDG:
       {(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(map(), f), app(app(cons(), x), xs)) -> app#(f, x))
        (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#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), 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(filter(), f), app(app(cons(), x), xs)) -> app#(f, x))
        (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(), false()), 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#(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))}
       SCCS:
        Scc:
         { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
          app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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)}
        SCC:
         Strict:
          { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
           app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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)}
         Weak:
         { 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),
                     app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
               app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                                 app(app(map(), 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(filter(), f), nil()) -> nil()}
         SPSC:
          Simple Projection:
           pi(app#) = 1
          Strict:
           { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), 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)}
          EDG:
           {(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(), false()), f), x), xs) -> app#(app(filter(), 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(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(), false()), f), x), xs) -> app#(app(filter(), 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))}
           SCCS:
            Scc:
             { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), 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)}
            SCC:
             Strict:
              { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), 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)}
             Weak:
             { 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),
                         app(app(*(), x), app(app(+(), y), z)) -> app(app(+(), app(app(*(), x), y)), app(app(*(), x), z)),
                   app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)),
                                     app(app(map(), 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(filter(), f), nil()) -> nil()}
             SPSC:
              Simple Projection:
               pi(app#) = 1
              Strict:
               { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs),
                app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs)}
              EDG:
               {}
               SCCS:
                
                Qed