MAYBE
TRS:
 {                        app(app(f, 0()), n) -> app(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
  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()}
 DP:
  Strict:
   {                        app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
                            app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())),
                            app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()),
                            app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))),
                            app#(app(f, 0()), n) -> app#(map(), f),
                            app#(app(f, 0()), n) -> app#(cons(), 0()),
    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))}
  Weak:
  {                        app(app(f, 0()), n) -> app(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
   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()}
  EDG:
   {(app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (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(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#(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#(f, x))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (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(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(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#(cons(), app(f, x)))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(map(), f))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(f, 0()), n) -> app#(cons(), 0()))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(f, x)), app(app(map(), f), xs)))
    (app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(cons(), app(f, x)))}
   SCCS:
    Scc:
     {                        app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
                              app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())),
                              app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()),
      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))}
    SCC:
     Strict:
      {                        app#(app(f, 0()), n) -> app#(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
                               app#(app(f, 0()), n) -> app#(app(map(), f), app(app(cons(), 0()), nil())),
                               app#(app(f, 0()), n) -> app#(app(cons(), 0()), nil()),
       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))}
     Weak:
     {                        app(app(f, 0()), n) -> app(app(hd(), app(app(map(), f), app(app(cons(), 0()), nil()))), n),
      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()}
     Fail