YES
TRS:
 {                app(app(app(if(), true()), x), y) -> x,
                  app(app(app(if(), true()), x), y) -> y,
  app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                    app(app(takeWhile(), p), nil()) -> nil(),
  app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                    app(app(dropWhile(), p), nil()) -> nil()}
 DP:
  Strict:
   {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
    app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
    app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))),
    app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs),
    app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(cons(), x), app(app(takeWhile(), p), xs)),
    app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)),
    app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
    app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
    app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(dropWhile(), p), xs)),
    app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs),
    app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x))}
  Weak:
  {                app(app(app(if(), true()), x), y) -> x,
                   app(app(app(if(), true()), x), y) -> y,
   app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                     app(app(takeWhile(), p), nil()) -> nil(),
   app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                     app(app(dropWhile(), p), nil()) -> nil()}
  EDG:
   {(app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(dropWhile(), p), xs)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(cons(), x), app(app(takeWhile(), p), xs)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(cons(), x), app(app(takeWhile(), p), xs)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(dropWhile(), p), xs)))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs))
    (app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(cons(), x), app(app(takeWhile(), p), xs)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(if(), app(p, x)), app(app(dropWhile(), p), xs)))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs))
    (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(if(), app(p, x)))}
   SCCS:
    Scc:
     {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
      app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs),
      app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
      app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs)}
    SCC:
     Strict:
      {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
       app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs),
       app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
       app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs)}
     Weak:
     {                app(app(app(if(), true()), x), y) -> x,
                      app(app(app(if(), true()), x), y) -> y,
      app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                        app(app(takeWhile(), p), nil()) -> nil(),
      app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                        app(app(dropWhile(), p), nil()) -> nil()}
     SPSC:
      Simple Projection:
       pi(app#) = 0
      Strict:
       {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
        app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs),
        app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs)}
      EDG:
       {(app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs))
        (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
        (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))
        (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x), app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs))
        (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x))
        (app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))}
       SCCS:
        Scc:
         {app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs)}
        Scc:
         {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
          app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs)}
        SCC:
         Strict:
          {app#(app(dropWhile(), p), app(app(cons(), x), xs)) -> app#(app(dropWhile(), p), xs)}
         Weak:
         {                app(app(app(if(), true()), x), y) -> x,
                          app(app(app(if(), true()), x), y) -> y,
          app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                            app(app(takeWhile(), p), nil()) -> nil(),
          app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                            app(app(dropWhile(), p), nil()) -> nil()}
         SPSC:
          Simple Projection:
           pi(app#) = 1
          Strict:
           {}
          Qed
        SCC:
         Strict:
          {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(p, x),
           app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs)}
         Weak:
         {                app(app(app(if(), true()), x), y) -> x,
                          app(app(app(if(), true()), x), y) -> y,
          app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                            app(app(takeWhile(), p), nil()) -> nil(),
          app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                            app(app(dropWhile(), p), nil()) -> nil()}
         SPSC:
          Simple Projection:
           pi(app#) = 0
          Strict:
           {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs)}
          EDG:
           {(app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs), app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs))}
           SCCS:
            Scc:
             {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs)}
            SCC:
             Strict:
              {app#(app(takeWhile(), p), app(app(cons(), x), xs)) -> app#(app(takeWhile(), p), xs)}
             Weak:
             {                app(app(app(if(), true()), x), y) -> x,
                              app(app(app(if(), true()), x), y) -> y,
              app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs))), nil()),
                                app(app(takeWhile(), p), nil()) -> nil(),
              app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app(app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs)),
                                app(app(dropWhile(), p), nil()) -> nil()}
             SPSC:
              Simple Projection:
               pi(app#) = 1
              Strict:
               {}
              Qed