MAYBE

Problem:
 eq(0(),0()) -> true()
 eq(0(),s(x)) -> false()
 eq(s(x),0()) -> false()
 eq(s(x),s(y)) -> eq(x,y)
 le(0(),y) -> true()
 le(s(x),0()) -> false()
 le(s(x),s(y)) -> le(x,y)
 app(nil(),y) -> y
 app(add(n,x),y) -> add(n,app(x,y))
 min(add(n,nil())) -> n
 min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
 if_min(true(),add(n,add(m,x))) -> min(add(n,x))
 if_min(false(),add(n,add(m,x))) -> min(add(m,x))
 head(add(n,x)) -> n
 tail(add(n,x)) -> x
 tail(nil()) -> nil()
 null(nil()) -> true()
 null(add(n,x)) -> false()
 rm(n,nil()) -> nil()
 rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
 if_rm(true(),n,add(m,x)) -> rm(n,x)
 if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
 minsort(x) -> mins(x,nil(),nil())
 mins(x,y,z) -> if(null(x),x,y,z)
 if(true(),x,y,z) -> z
 if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
 if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
 if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)

Proof:
 DP Processor:
  DPs:
   eq#(s(x),s(y)) -> eq#(x,y)
   le#(s(x),s(y)) -> le#(x,y)
   app#(add(n,x),y) -> app#(x,y)
   min#(add(n,add(m,x))) -> le#(n,m)
   min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
   if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
   if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
   rm#(n,add(m,x)) -> eq#(n,m)
   rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
   if_rm#(true(),n,add(m,x)) -> rm#(n,x)
   if_rm#(false(),n,add(m,x)) -> rm#(n,x)
   minsort#(x) -> mins#(x,nil(),nil())
   mins#(x,y,z) -> null#(x)
   mins#(x,y,z) -> if#(null(x),x,y,z)
   if#(false(),x,y,z) -> min#(x)
   if#(false(),x,y,z) -> head#(x)
   if#(false(),x,y,z) -> eq#(head(x),min(x))
   if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
   if2#(true(),x,y,z) -> app#(z,add(head(x),nil()))
   if2#(true(),x,y,z) -> tail#(x)
   if2#(true(),x,y,z) -> head#(x)
   if2#(true(),x,y,z) -> rm#(head(x),tail(x))
   if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y)
   if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
   if2#(false(),x,y,z) -> head#(x)
   if2#(false(),x,y,z) -> tail#(x)
   if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
  TRS:
   eq(0(),0()) -> true()
   eq(0(),s(x)) -> false()
   eq(s(x),0()) -> false()
   eq(s(x),s(y)) -> eq(x,y)
   le(0(),y) -> true()
   le(s(x),0()) -> false()
   le(s(x),s(y)) -> le(x,y)
   app(nil(),y) -> y
   app(add(n,x),y) -> add(n,app(x,y))
   min(add(n,nil())) -> n
   min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
   if_min(true(),add(n,add(m,x))) -> min(add(n,x))
   if_min(false(),add(n,add(m,x))) -> min(add(m,x))
   head(add(n,x)) -> n
   tail(add(n,x)) -> x
   tail(nil()) -> nil()
   null(nil()) -> true()
   null(add(n,x)) -> false()
   rm(n,nil()) -> nil()
   rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
   if_rm(true(),n,add(m,x)) -> rm(n,x)
   if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
   minsort(x) -> mins(x,nil(),nil())
   mins(x,y,z) -> if(null(x),x,y,z)
   if(true(),x,y,z) -> z
   if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
   if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
   if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
  Usable Rule Processor:
   DPs:
    eq#(s(x),s(y)) -> eq#(x,y)
    le#(s(x),s(y)) -> le#(x,y)
    app#(add(n,x),y) -> app#(x,y)
    min#(add(n,add(m,x))) -> le#(n,m)
    min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
    if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
    if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
    rm#(n,add(m,x)) -> eq#(n,m)
    rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
    if_rm#(true(),n,add(m,x)) -> rm#(n,x)
    if_rm#(false(),n,add(m,x)) -> rm#(n,x)
    minsort#(x) -> mins#(x,nil(),nil())
    mins#(x,y,z) -> null#(x)
    mins#(x,y,z) -> if#(null(x),x,y,z)
    if#(false(),x,y,z) -> min#(x)
    if#(false(),x,y,z) -> head#(x)
    if#(false(),x,y,z) -> eq#(head(x),min(x))
    if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
    if2#(true(),x,y,z) -> app#(z,add(head(x),nil()))
    if2#(true(),x,y,z) -> tail#(x)
    if2#(true(),x,y,z) -> head#(x)
    if2#(true(),x,y,z) -> rm#(head(x),tail(x))
    if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y)
    if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
    if2#(false(),x,y,z) -> head#(x)
    if2#(false(),x,y,z) -> tail#(x)
    if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
   TRS:
    f34(x,y) -> x
    f34(x,y) -> y
    le(0(),y) -> true()
    le(s(x),0()) -> false()
    le(s(x),s(y)) -> le(x,y)
    eq(0(),0()) -> true()
    eq(0(),s(x)) -> false()
    eq(s(x),0()) -> false()
    eq(s(x),s(y)) -> eq(x,y)
    null(nil()) -> true()
    null(add(n,x)) -> false()
    min(add(n,nil())) -> n
    min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
    if_min(true(),add(n,add(m,x))) -> min(add(n,x))
    if_min(false(),add(n,add(m,x))) -> min(add(m,x))
    head(add(n,x)) -> n
    tail(add(n,x)) -> x
    tail(nil()) -> nil()
    rm(n,nil()) -> nil()
    rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
    if_rm(true(),n,add(m,x)) -> rm(n,x)
    if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
    app(nil(),y) -> y
    app(add(n,x),y) -> add(n,app(x,y))
   EDG Processor:
    DPs:
     eq#(s(x),s(y)) -> eq#(x,y)
     le#(s(x),s(y)) -> le#(x,y)
     app#(add(n,x),y) -> app#(x,y)
     min#(add(n,add(m,x))) -> le#(n,m)
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
     if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
     if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
     rm#(n,add(m,x)) -> eq#(n,m)
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
     if_rm#(true(),n,add(m,x)) -> rm#(n,x)
     if_rm#(false(),n,add(m,x)) -> rm#(n,x)
     minsort#(x) -> mins#(x,nil(),nil())
     mins#(x,y,z) -> null#(x)
     mins#(x,y,z) -> if#(null(x),x,y,z)
     if#(false(),x,y,z) -> min#(x)
     if#(false(),x,y,z) -> head#(x)
     if#(false(),x,y,z) -> eq#(head(x),min(x))
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
     if2#(true(),x,y,z) -> app#(z,add(head(x),nil()))
     if2#(true(),x,y,z) -> tail#(x)
     if2#(true(),x,y,z) -> head#(x)
     if2#(true(),x,y,z) -> rm#(head(x),tail(x))
     if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y)
     if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
     if2#(false(),x,y,z) -> head#(x)
     if2#(false(),x,y,z) -> tail#(x)
     if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
    TRS:
     f34(x,y) -> x
     f34(x,y) -> y
     le(0(),y) -> true()
     le(s(x),0()) -> false()
     le(s(x),s(y)) -> le(x,y)
     eq(0(),0()) -> true()
     eq(0(),s(x)) -> false()
     eq(s(x),0()) -> false()
     eq(s(x),s(y)) -> eq(x,y)
     null(nil()) -> true()
     null(add(n,x)) -> false()
     min(add(n,nil())) -> n
     min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
     if_min(true(),add(n,add(m,x))) -> min(add(n,x))
     if_min(false(),add(n,add(m,x))) -> min(add(m,x))
     head(add(n,x)) -> n
     tail(add(n,x)) -> x
     tail(nil()) -> nil()
     rm(n,nil()) -> nil()
     rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
     if_rm(true(),n,add(m,x)) -> rm(n,x)
     if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
     app(nil(),y) -> y
     app(add(n,x),y) -> add(n,app(x,y))
    graph:
     if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z) ->
     mins#(x,y,z) -> null#(x)
     if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z) ->
     mins#(x,y,z) -> if#(null(x),x,y,z)
     if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil()))) ->
     mins#(x,y,z) -> null#(x)
     if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil()))) ->
     mins#(x,y,z) -> if#(null(x),x,y,z)
     if2#(true(),x,y,z) -> rm#(head(x),tail(x)) ->
     rm#(n,add(m,x)) -> eq#(n,m)
     if2#(true(),x,y,z) -> rm#(head(x),tail(x)) ->
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
     if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y) ->
     app#(add(n,x),y) -> app#(x,y)
     if2#(true(),x,y,z) -> app#(z,add(head(x),nil())) ->
     app#(add(n,x),y) -> app#(x,y)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> app#(z,add(head(x),nil()))
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> tail#(x)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> head#(x)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> rm#(head(x),tail(x))
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(false(),x,y,z) -> head#(x)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(false(),x,y,z) -> tail#(x)
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z) ->
     if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
     if#(false(),x,y,z) -> min#(x) ->
     min#(add(n,add(m,x))) -> le#(n,m)
     if#(false(),x,y,z) -> min#(x) ->
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
     if#(false(),x,y,z) -> eq#(head(x),min(x)) ->
     eq#(s(x),s(y)) -> eq#(x,y)
     mins#(x,y,z) -> if#(null(x),x,y,z) ->
     if#(false(),x,y,z) -> min#(x)
     mins#(x,y,z) -> if#(null(x),x,y,z) ->
     if#(false(),x,y,z) -> head#(x)
     mins#(x,y,z) -> if#(null(x),x,y,z) ->
     if#(false(),x,y,z) -> eq#(head(x),min(x))
     mins#(x,y,z) -> if#(null(x),x,y,z) ->
     if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
     minsort#(x) -> mins#(x,nil(),nil()) ->
     mins#(x,y,z) -> null#(x)
     minsort#(x) -> mins#(x,nil(),nil()) ->
     mins#(x,y,z) -> if#(null(x),x,y,z)
     if_rm#(false(),n,add(m,x)) -> rm#(n,x) ->
     rm#(n,add(m,x)) -> eq#(n,m)
     if_rm#(false(),n,add(m,x)) -> rm#(n,x) ->
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
     if_rm#(true(),n,add(m,x)) -> rm#(n,x) ->
     rm#(n,add(m,x)) -> eq#(n,m)
     if_rm#(true(),n,add(m,x)) -> rm#(n,x) ->
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) ->
     if_rm#(true(),n,add(m,x)) -> rm#(n,x)
     rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x)) ->
     if_rm#(false(),n,add(m,x)) -> rm#(n,x)
     rm#(n,add(m,x)) -> eq#(n,m) ->
     eq#(s(x),s(y)) -> eq#(x,y)
     if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) ->
     min#(add(n,add(m,x))) -> le#(n,m)
     if_min#(false(),add(n,add(m,x))) -> min#(add(m,x)) ->
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
     if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) ->
     min#(add(n,add(m,x))) -> le#(n,m)
     if_min#(true(),add(n,add(m,x))) -> min#(add(n,x)) ->
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) ->
     if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
     min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x))) ->
     if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
     min#(add(n,add(m,x))) -> le#(n,m) -> le#(s(x),s(y)) -> le#(x,y)
     app#(add(n,x),y) -> app#(x,y) -> app#(add(n,x),y) -> app#(x,y)
     le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y)
     eq#(s(x),s(y)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y)
    Restore Modifier:
     DPs:
      eq#(s(x),s(y)) -> eq#(x,y)
      le#(s(x),s(y)) -> le#(x,y)
      app#(add(n,x),y) -> app#(x,y)
      min#(add(n,add(m,x))) -> le#(n,m)
      min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
      if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
      if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
      rm#(n,add(m,x)) -> eq#(n,m)
      rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
      if_rm#(true(),n,add(m,x)) -> rm#(n,x)
      if_rm#(false(),n,add(m,x)) -> rm#(n,x)
      minsort#(x) -> mins#(x,nil(),nil())
      mins#(x,y,z) -> null#(x)
      mins#(x,y,z) -> if#(null(x),x,y,z)
      if#(false(),x,y,z) -> min#(x)
      if#(false(),x,y,z) -> head#(x)
      if#(false(),x,y,z) -> eq#(head(x),min(x))
      if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
      if2#(true(),x,y,z) -> app#(z,add(head(x),nil()))
      if2#(true(),x,y,z) -> tail#(x)
      if2#(true(),x,y,z) -> head#(x)
      if2#(true(),x,y,z) -> rm#(head(x),tail(x))
      if2#(true(),x,y,z) -> app#(rm(head(x),tail(x)),y)
      if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
      if2#(false(),x,y,z) -> head#(x)
      if2#(false(),x,y,z) -> tail#(x)
      if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
     TRS:
      eq(0(),0()) -> true()
      eq(0(),s(x)) -> false()
      eq(s(x),0()) -> false()
      eq(s(x),s(y)) -> eq(x,y)
      le(0(),y) -> true()
      le(s(x),0()) -> false()
      le(s(x),s(y)) -> le(x,y)
      app(nil(),y) -> y
      app(add(n,x),y) -> add(n,app(x,y))
      min(add(n,nil())) -> n
      min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
      if_min(true(),add(n,add(m,x))) -> min(add(n,x))
      if_min(false(),add(n,add(m,x))) -> min(add(m,x))
      head(add(n,x)) -> n
      tail(add(n,x)) -> x
      tail(nil()) -> nil()
      null(nil()) -> true()
      null(add(n,x)) -> false()
      rm(n,nil()) -> nil()
      rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
      if_rm(true(),n,add(m,x)) -> rm(n,x)
      if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
      minsort(x) -> mins(x,nil(),nil())
      mins(x,y,z) -> if(null(x),x,y,z)
      if(true(),x,y,z) -> z
      if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
      if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
      if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
     SCC Processor:
      #sccs: 6
      #rules: 13
      #arcs: 43/729
      DPs:
       if2#(false(),x,y,z) -> mins#(tail(x),add(head(x),y),z)
       mins#(x,y,z) -> if#(null(x),x,y,z)
       if#(false(),x,y,z) -> if2#(eq(head(x),min(x)),x,y,z)
       if2#(true(),x,y,z) -> mins#(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open
      
      DPs:
       min#(add(n,add(m,x))) -> if_min#(le(n,m),add(n,add(m,x)))
       if_min#(false(),add(n,add(m,x))) -> min#(add(m,x))
       if_min#(true(),add(n,add(m,x))) -> min#(add(n,x))
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open
      
      DPs:
       le#(s(x),s(y)) -> le#(x,y)
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open
      
      DPs:
       rm#(n,add(m,x)) -> if_rm#(eq(n,m),n,add(m,x))
       if_rm#(false(),n,add(m,x)) -> rm#(n,x)
       if_rm#(true(),n,add(m,x)) -> rm#(n,x)
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open
      
      DPs:
       eq#(s(x),s(y)) -> eq#(x,y)
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open
      
      DPs:
       app#(add(n,x),y) -> app#(x,y)
      TRS:
       eq(0(),0()) -> true()
       eq(0(),s(x)) -> false()
       eq(s(x),0()) -> false()
       eq(s(x),s(y)) -> eq(x,y)
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       app(nil(),y) -> y
       app(add(n,x),y) -> add(n,app(x,y))
       min(add(n,nil())) -> n
       min(add(n,add(m,x))) -> if_min(le(n,m),add(n,add(m,x)))
       if_min(true(),add(n,add(m,x))) -> min(add(n,x))
       if_min(false(),add(n,add(m,x))) -> min(add(m,x))
       head(add(n,x)) -> n
       tail(add(n,x)) -> x
       tail(nil()) -> nil()
       null(nil()) -> true()
       null(add(n,x)) -> false()
       rm(n,nil()) -> nil()
       rm(n,add(m,x)) -> if_rm(eq(n,m),n,add(m,x))
       if_rm(true(),n,add(m,x)) -> rm(n,x)
       if_rm(false(),n,add(m,x)) -> add(m,rm(n,x))
       minsort(x) -> mins(x,nil(),nil())
       mins(x,y,z) -> if(null(x),x,y,z)
       if(true(),x,y,z) -> z
       if(false(),x,y,z) -> if2(eq(head(x),min(x)),x,y,z)
       if2(true(),x,y,z) -> mins(app(rm(head(x),tail(x)),y),nil(),app(z,add(head(x),nil())))
       if2(false(),x,y,z) -> mins(tail(x),add(head(x),y),z)
      Open