YES
Time: 0.017861
TRS:
 {                             test(x_0, y) -> True(),
                               test(x_0, y) -> False(),
                 match_0(l1_2, l2_1, Nil()) -> l2_1,
            match_0(l1_2, l2_1, Cons(x, l)) -> Cons(x, append(l, l2_1)),
                         append(l1_2, l2_1) -> match_0(l1_2, l2_1, l1_2),
                   match_1(a_4, l_3, Nil()) -> Pair(Nil(), Nil()),
             match_1(a_4, l_3, Cons(x, l')) -> match_2(x, l', a_4, l_3, part(a_4, l')),
                             part(a_4, l_3) -> match_1(a_4, l_3, l_3),
     match_2(x, l', a_4, l_3, Pair(l1, l2)) -> match_3(l1, l2, x, l', a_4, l_3, test(a_4, x)),
   match_3(l1, l2, x, l', a_4, l_3, True()) -> Pair(l1, Cons(x, l2)),
  match_3(l1, l2, x, l', a_4, l_3, False()) -> Pair(Cons(x, l1), l2),
                        match_4(l_5, Nil()) -> Nil(),
                  match_4(l_5, Cons(a, l')) -> match_5(a, l', l_5, part(a, l')),
                                  quick l_5 -> match_4(l_5, l_5),
          match_5(a, l', l_5, Pair(l1, l2)) -> append(quick l1, Cons(a, quick l2))}
 DP:
  DP:
   {       match_0#(l1_2, l2_1, Cons(x, l)) -> append#(l, l2_1),
                        append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2),
            match_1#(a_4, l_3, Cons(x, l')) -> part#(a_4, l'),
            match_1#(a_4, l_3, Cons(x, l')) -> match_2#(x, l', a_4, l_3, part(a_4, l')),
                            part#(a_4, l_3) -> match_1#(a_4, l_3, l_3),
    match_2#(x, l', a_4, l_3, Pair(l1, l2)) -> test#(a_4, x),
    match_2#(x, l', a_4, l_3, Pair(l1, l2)) -> match_3#(l1, l2, x, l', a_4, l_3, test(a_4, x)),
                 match_4#(l_5, Cons(a, l')) -> part#(a, l'),
                 match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')),
                                 quick# l_5 -> match_4#(l_5, l_5),
         match_5#(a, l', l_5, Pair(l1, l2)) -> append#(quick l1, Cons(a, quick l2)),
         match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1,
         match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2}
  TRS:
  {                             test(x_0, y) -> True(),
                                test(x_0, y) -> False(),
                  match_0(l1_2, l2_1, Nil()) -> l2_1,
             match_0(l1_2, l2_1, Cons(x, l)) -> Cons(x, append(l, l2_1)),
                          append(l1_2, l2_1) -> match_0(l1_2, l2_1, l1_2),
                    match_1(a_4, l_3, Nil()) -> Pair(Nil(), Nil()),
              match_1(a_4, l_3, Cons(x, l')) -> match_2(x, l', a_4, l_3, part(a_4, l')),
                              part(a_4, l_3) -> match_1(a_4, l_3, l_3),
      match_2(x, l', a_4, l_3, Pair(l1, l2)) -> match_3(l1, l2, x, l', a_4, l_3, test(a_4, x)),
    match_3(l1, l2, x, l', a_4, l_3, True()) -> Pair(l1, Cons(x, l2)),
   match_3(l1, l2, x, l', a_4, l_3, False()) -> Pair(Cons(x, l1), l2),
                         match_4(l_5, Nil()) -> Nil(),
                   match_4(l_5, Cons(a, l')) -> match_5(a, l', l_5, part(a, l')),
                                   quick l_5 -> match_4(l_5, l_5),
           match_5(a, l', l_5, Pair(l1, l2)) -> append(quick l1, Cons(a, quick l2))}
  EDG:
   {(match_5#(a, l', l_5, Pair(l1, l2)) -> append#(quick l1, Cons(a, quick l2)), append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2))
    (match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2, quick# l_5 -> match_4#(l_5, l_5))
    (match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')), match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2)
    (match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')), match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1)
    (match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')), match_5#(a, l', l_5, Pair(l1, l2)) -> append#(quick l1, Cons(a, quick l2)))
    (match_4#(l_5, Cons(a, l')) -> part#(a, l'), part#(a_4, l_3) -> match_1#(a_4, l_3, l_3))
    (part#(a_4, l_3) -> match_1#(a_4, l_3, l_3), match_1#(a_4, l_3, Cons(x, l')) -> part#(a_4, l'))
    (part#(a_4, l_3) -> match_1#(a_4, l_3, l_3), match_1#(a_4, l_3, Cons(x, l')) -> match_2#(x, l', a_4, l_3, part(a_4, l')))
    (match_1#(a_4, l_3, Cons(x, l')) -> part#(a_4, l'), part#(a_4, l_3) -> match_1#(a_4, l_3, l_3))
    (match_1#(a_4, l_3, Cons(x, l')) -> match_2#(x, l', a_4, l_3, part(a_4, l')), match_2#(x, l', a_4, l_3, Pair(l1, l2)) -> test#(a_4, x))
    (match_1#(a_4, l_3, Cons(x, l')) -> match_2#(x, l', a_4, l_3, part(a_4, l')), match_2#(x, l', a_4, l_3, Pair(l1, l2)) -> match_3#(l1, l2, x, l', a_4, l_3, test(a_4, x)))
    (append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2), match_0#(l1_2, l2_1, Cons(x, l)) -> append#(l, l2_1))
    (match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1, quick# l_5 -> match_4#(l_5, l_5))
    (match_0#(l1_2, l2_1, Cons(x, l)) -> append#(l, l2_1), append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2))
    (quick# l_5 -> match_4#(l_5, l_5), match_4#(l_5, Cons(a, l')) -> part#(a, l'))
    (quick# l_5 -> match_4#(l_5, l_5), match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')))}
   SCCS (3):
    Scc:
     {        match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')),
                              quick# l_5 -> match_4#(l_5, l_5),
      match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1,
      match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2}
    Scc:
     {match_1#(a_4, l_3, Cons(x, l')) -> part#(a_4, l'),
                      part#(a_4, l_3) -> match_1#(a_4, l_3, l_3)}
    Scc:
     {match_0#(l1_2, l2_1, Cons(x, l)) -> append#(l, l2_1),
                   append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2)}
    SCC (4):
     Strict:
      {        match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l')),
                               quick# l_5 -> match_4#(l_5, l_5),
       match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1,
       match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2}
     Weak:
     {                             test(x_0, y) -> True(),
                                   test(x_0, y) -> False(),
                     match_0(l1_2, l2_1, Nil()) -> l2_1,
                match_0(l1_2, l2_1, Cons(x, l)) -> Cons(x, append(l, l2_1)),
                             append(l1_2, l2_1) -> match_0(l1_2, l2_1, l1_2),
                       match_1(a_4, l_3, Nil()) -> Pair(Nil(), Nil()),
                 match_1(a_4, l_3, Cons(x, l')) -> match_2(x, l', a_4, l_3, part(a_4, l')),
                                 part(a_4, l_3) -> match_1(a_4, l_3, l_3),
         match_2(x, l', a_4, l_3, Pair(l1, l2)) -> match_3(l1, l2, x, l', a_4, l_3, test(a_4, x)),
       match_3(l1, l2, x, l', a_4, l_3, True()) -> Pair(l1, Cons(x, l2)),
      match_3(l1, l2, x, l', a_4, l_3, False()) -> Pair(Cons(x, l1), l2),
                            match_4(l_5, Nil()) -> Nil(),
                      match_4(l_5, Cons(a, l')) -> match_5(a, l', l_5, part(a, l')),
                                      quick l_5 -> match_4(l_5, l_5),
              match_5(a, l', l_5, Pair(l1, l2)) -> append(quick l1, Cons(a, quick l2))}
     POLY:
      Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
      Interpretation:
       [match_3](x0, x1, x2, x3, x4, x5, x6) = x0 + x1 + 1,
       
       [match_2](x0, x1, x2, x3, x4) = x0 + 1,
       
       [match_5](x0, x1, x2, x3) = 0,
       
       [match_0](x0, x1, x2) = 0,
       
       [match_1](x0, x1, x2) = x0,
       
       [test](x0, x1) = 0,
       
       [append](x0, x1) = x0,
       
       [Cons](x0, x1) = x0 + 1,
       
       [part](x0, x1) = x0,
       
       [Pair](x0, x1) = x0 + x1,
       
       [match_4](x0, x1) = 0,
       
       [quick](x0) = 1,
       
       [True] = 0,
       
       [False] = 0,
       
       [Nil] = 0,
       
       [match_5#](x0, x1, x2, x3) = x0,
       
       [match_4#](x0, x1) = x0,
       
       [quick#](x0) = x0
      Strict:
       match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2
       0 + 0l' + 1l1 + 1l2 + 0l_5 + 0a >= 0 + 1l2
       match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1
       0 + 0l' + 1l1 + 1l2 + 0l_5 + 0a >= 0 + 1l1
       quick# l_5 -> match_4#(l_5, l_5)
       0 + 1l_5 >= 0 + 1l_5
       match_4#(l_5, Cons(a, l')) -> match_5#(a, l', l_5, part(a, l'))
       1 + 1l' + 0l_5 + 0a >= 0 + 1l' + 0l_5 + 0a
      Weak:
       
     EDG:
      {(match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l1, quick# l_5 -> match_4#(l_5, l_5))
       (match_5#(a, l', l_5, Pair(l1, l2)) -> quick# l2, quick# l_5 -> match_4#(l_5, l_5))}
      SCCS (0):
       
       Qed
   SCC (2):
    Strict:
     {match_1#(a_4, l_3, Cons(x, l')) -> part#(a_4, l'),
                      part#(a_4, l_3) -> match_1#(a_4, l_3, l_3)}
    Weak:
    {                             test(x_0, y) -> True(),
                                  test(x_0, y) -> False(),
                    match_0(l1_2, l2_1, Nil()) -> l2_1,
               match_0(l1_2, l2_1, Cons(x, l)) -> Cons(x, append(l, l2_1)),
                            append(l1_2, l2_1) -> match_0(l1_2, l2_1, l1_2),
                      match_1(a_4, l_3, Nil()) -> Pair(Nil(), Nil()),
                match_1(a_4, l_3, Cons(x, l')) -> match_2(x, l', a_4, l_3, part(a_4, l')),
                                part(a_4, l_3) -> match_1(a_4, l_3, l_3),
        match_2(x, l', a_4, l_3, Pair(l1, l2)) -> match_3(l1, l2, x, l', a_4, l_3, test(a_4, x)),
      match_3(l1, l2, x, l', a_4, l_3, True()) -> Pair(l1, Cons(x, l2)),
     match_3(l1, l2, x, l', a_4, l_3, False()) -> Pair(Cons(x, l1), l2),
                           match_4(l_5, Nil()) -> Nil(),
                     match_4(l_5, Cons(a, l')) -> match_5(a, l', l_5, part(a, l')),
                                     quick l_5 -> match_4(l_5, l_5),
             match_5(a, l', l_5, Pair(l1, l2)) -> append(quick l1, Cons(a, quick l2))}
    SPSC:
     Simple Projection:
      pi(part#) = 1, pi(match_1#) = 2
     Strict:
      {part#(a_4, l_3) -> match_1#(a_4, l_3, l_3)}
     EDG:
      {}
      SCCS (0):
       
       Qed
   SCC (2):
    Strict:
     {match_0#(l1_2, l2_1, Cons(x, l)) -> append#(l, l2_1),
                   append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2)}
    Weak:
    {                             test(x_0, y) -> True(),
                                  test(x_0, y) -> False(),
                    match_0(l1_2, l2_1, Nil()) -> l2_1,
               match_0(l1_2, l2_1, Cons(x, l)) -> Cons(x, append(l, l2_1)),
                            append(l1_2, l2_1) -> match_0(l1_2, l2_1, l1_2),
                      match_1(a_4, l_3, Nil()) -> Pair(Nil(), Nil()),
                match_1(a_4, l_3, Cons(x, l')) -> match_2(x, l', a_4, l_3, part(a_4, l')),
                                part(a_4, l_3) -> match_1(a_4, l_3, l_3),
        match_2(x, l', a_4, l_3, Pair(l1, l2)) -> match_3(l1, l2, x, l', a_4, l_3, test(a_4, x)),
      match_3(l1, l2, x, l', a_4, l_3, True()) -> Pair(l1, Cons(x, l2)),
     match_3(l1, l2, x, l', a_4, l_3, False()) -> Pair(Cons(x, l1), l2),
                           match_4(l_5, Nil()) -> Nil(),
                     match_4(l_5, Cons(a, l')) -> match_5(a, l', l_5, part(a, l')),
                                     quick l_5 -> match_4(l_5, l_5),
             match_5(a, l', l_5, Pair(l1, l2)) -> append(quick l1, Cons(a, quick l2))}
    SPSC:
     Simple Projection:
      pi(append#) = 0, pi(match_0#) = 2
     Strict:
      {append#(l1_2, l2_1) -> match_0#(l1_2, l2_1, l1_2)}
     EDG:
      {}
      SCCS (0):
       
       Qed