MAYBE
Time: 0.000926
TRS:
 {           is_empty nil() -> true(),
        is_empty cons(x, l) -> false(),
              hd cons(x, l) -> x,
              tl cons(x, l) -> cons(x, l),
   ifappend(l1, l2, true()) -> l2,
  ifappend(l1, l2, false()) -> cons(hd l1, append(tl l1, l2)),
             append(l1, l2) -> ifappend(l1, l2, is_empty l1)}
 DP:
  DP:
   {ifappend#(l1, l2, false()) -> hd# l1,
    ifappend#(l1, l2, false()) -> tl# l1,
    ifappend#(l1, l2, false()) -> append#(tl l1, l2),
               append#(l1, l2) -> is_empty# l1,
               append#(l1, l2) -> ifappend#(l1, l2, is_empty l1)}
  TRS:
  {           is_empty nil() -> true(),
         is_empty cons(x, l) -> false(),
               hd cons(x, l) -> x,
               tl cons(x, l) -> cons(x, l),
    ifappend(l1, l2, true()) -> l2,
   ifappend(l1, l2, false()) -> cons(hd l1, append(tl l1, l2)),
              append(l1, l2) -> ifappend(l1, l2, is_empty l1)}
  UR:
   {     is_empty nil() -> true(),
    is_empty cons(x, l) -> false(),
          tl cons(x, l) -> cons(x, l),
                a(y, z) -> y,
                a(y, z) -> z}
   EDG:
    {(append#(l1, l2) -> ifappend#(l1, l2, is_empty l1), ifappend#(l1, l2, false()) -> append#(tl l1, l2))
     (append#(l1, l2) -> ifappend#(l1, l2, is_empty l1), ifappend#(l1, l2, false()) -> tl# l1)
     (append#(l1, l2) -> ifappend#(l1, l2, is_empty l1), ifappend#(l1, l2, false()) -> hd# l1)
     (ifappend#(l1, l2, false()) -> append#(tl l1, l2), append#(l1, l2) -> is_empty# l1)
     (ifappend#(l1, l2, false()) -> append#(tl l1, l2), append#(l1, l2) -> ifappend#(l1, l2, is_empty l1))}
    STATUS:
     arrows: 0.800000
     SCCS (1):
      Scc:
       {ifappend#(l1, l2, false()) -> append#(tl l1, l2),
                   append#(l1, l2) -> ifappend#(l1, l2, is_empty l1)}
      
      SCC (2):
       Strict:
        {ifappend#(l1, l2, false()) -> append#(tl l1, l2),
                    append#(l1, l2) -> ifappend#(l1, l2, is_empty l1)}
       Weak:
       {           is_empty nil() -> true(),
              is_empty cons(x, l) -> false(),
                    hd cons(x, l) -> x,
                    tl cons(x, l) -> cons(x, l),
         ifappend(l1, l2, true()) -> l2,
        ifappend(l1, l2, false()) -> cons(hd l1, append(tl l1, l2)),
                   append(l1, l2) -> ifappend(l1, l2, is_empty l1)}
       Open