MAYBE

Problem:
 le(0(),y) -> true()
 le(s(x),0()) -> false()
 le(s(x),s(y)) -> le(x,y)
 minus(x,0()) -> x
 minus(0(),s(y)) -> 0()
 minus(s(x),s(y)) -> minus(x,y)
 plus(x,0()) -> x
 plus(x,s(y)) -> s(plus(x,y))
 mod(s(x),0()) -> 0()
 mod(x,s(y)) -> help(x,s(y),0())
 help(x,s(y),c) -> if(le(c,x),x,s(y),c)
 if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
 if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))

Proof:
 DP Processor:
  DPs:
   le#(s(x),s(y)) -> le#(x,y)
   minus#(s(x),s(y)) -> minus#(x,y)
   plus#(x,s(y)) -> plus#(x,y)
   mod#(x,s(y)) -> help#(x,s(y),0())
   help#(x,s(y),c) -> le#(c,x)
   help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
   if#(true(),x,s(y),c) -> plus#(c,s(y))
   if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
   if#(false(),x,s(y),c) -> minus#(c,s(y))
   if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y)))
  TRS:
   le(0(),y) -> true()
   le(s(x),0()) -> false()
   le(s(x),s(y)) -> le(x,y)
   minus(x,0()) -> x
   minus(0(),s(y)) -> 0()
   minus(s(x),s(y)) -> minus(x,y)
   plus(x,0()) -> x
   plus(x,s(y)) -> s(plus(x,y))
   mod(s(x),0()) -> 0()
   mod(x,s(y)) -> help(x,s(y),0())
   help(x,s(y),c) -> if(le(c,x),x,s(y),c)
   if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
   if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
  Usable Rule Processor:
   DPs:
    le#(s(x),s(y)) -> le#(x,y)
    minus#(s(x),s(y)) -> minus#(x,y)
    plus#(x,s(y)) -> plus#(x,y)
    mod#(x,s(y)) -> help#(x,s(y),0())
    help#(x,s(y),c) -> le#(c,x)
    help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
    if#(true(),x,s(y),c) -> plus#(c,s(y))
    if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
    if#(false(),x,s(y),c) -> minus#(c,s(y))
    if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y)))
   TRS:
    f16(x,y) -> x
    f16(x,y) -> y
    le(0(),y) -> true()
    le(s(x),0()) -> false()
    le(s(x),s(y)) -> le(x,y)
    plus(x,s(y)) -> s(plus(x,y))
    plus(x,0()) -> x
    minus(0(),s(y)) -> 0()
    minus(s(x),s(y)) -> minus(x,y)
    minus(x,0()) -> x
   ADG Processor:
    DPs:
     le#(s(x),s(y)) -> le#(x,y)
     minus#(s(x),s(y)) -> minus#(x,y)
     plus#(x,s(y)) -> plus#(x,y)
     mod#(x,s(y)) -> help#(x,s(y),0())
     help#(x,s(y),c) -> le#(c,x)
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
     if#(true(),x,s(y),c) -> plus#(c,s(y))
     if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
     if#(false(),x,s(y),c) -> minus#(c,s(y))
     if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y)))
    TRS:
     f16(x,y) -> x
     f16(x,y) -> y
     le(0(),y) -> true()
     le(s(x),0()) -> false()
     le(s(x),s(y)) -> le(x,y)
     plus(x,s(y)) -> s(plus(x,y))
     plus(x,0()) -> x
     minus(0(),s(y)) -> 0()
     minus(s(x),s(y)) -> minus(x,y)
     minus(x,0()) -> x
    graph:
     if#(false(),x,s(y),c) -> minus#(c,s(y)) ->
     minus#(s(x),s(y)) -> minus#(x,y)
     if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y))) ->
     minus#(s(x),s(y)) -> minus#(x,y)
     if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) ->
     help#(x,s(y),c) -> le#(c,x)
     if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y))) ->
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
     if#(true(),x,s(y),c) -> plus#(c,s(y)) ->
     plus#(x,s(y)) -> plus#(x,y)
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c) ->
     if#(true(),x,s(y),c) -> plus#(c,s(y))
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c) ->
     if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c) ->
     if#(false(),x,s(y),c) -> minus#(c,s(y))
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c) ->
     if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y)))
     help#(x,s(y),c) -> le#(c,x) -> le#(s(x),s(y)) -> le#(x,y)
     mod#(x,s(y)) -> help#(x,s(y),0()) ->
     help#(x,s(y),c) -> le#(c,x)
     mod#(x,s(y)) -> help#(x,s(y),0()) ->
     help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
     plus#(x,s(y)) -> plus#(x,y) -> plus#(x,s(y)) -> plus#(x,y)
     minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y)
     le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y)
    Restore Modifier:
     DPs:
      le#(s(x),s(y)) -> le#(x,y)
      minus#(s(x),s(y)) -> minus#(x,y)
      plus#(x,s(y)) -> plus#(x,y)
      mod#(x,s(y)) -> help#(x,s(y),0())
      help#(x,s(y),c) -> le#(c,x)
      help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
      if#(true(),x,s(y),c) -> plus#(c,s(y))
      if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
      if#(false(),x,s(y),c) -> minus#(c,s(y))
      if#(false(),x,s(y),c) -> minus#(x,minus(c,s(y)))
     TRS:
      le(0(),y) -> true()
      le(s(x),0()) -> false()
      le(s(x),s(y)) -> le(x,y)
      minus(x,0()) -> x
      minus(0(),s(y)) -> 0()
      minus(s(x),s(y)) -> minus(x,y)
      plus(x,0()) -> x
      plus(x,s(y)) -> s(plus(x,y))
      mod(s(x),0()) -> 0()
      mod(x,s(y)) -> help(x,s(y),0())
      help(x,s(y),c) -> if(le(c,x),x,s(y),c)
      if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
      if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
     SCC Processor:
      #sccs: 4
      #rules: 5
      #arcs: 15/100
      DPs:
       if#(true(),x,s(y),c) -> help#(x,s(y),plus(c,s(y)))
       help#(x,s(y),c) -> if#(le(c,x),x,s(y),c)
      TRS:
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       minus(x,0()) -> x
       minus(0(),s(y)) -> 0()
       minus(s(x),s(y)) -> minus(x,y)
       plus(x,0()) -> x
       plus(x,s(y)) -> s(plus(x,y))
       mod(s(x),0()) -> 0()
       mod(x,s(y)) -> help(x,s(y),0())
       help(x,s(y),c) -> if(le(c,x),x,s(y),c)
       if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
       if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
      Open
      
      DPs:
       le#(s(x),s(y)) -> le#(x,y)
      TRS:
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       minus(x,0()) -> x
       minus(0(),s(y)) -> 0()
       minus(s(x),s(y)) -> minus(x,y)
       plus(x,0()) -> x
       plus(x,s(y)) -> s(plus(x,y))
       mod(s(x),0()) -> 0()
       mod(x,s(y)) -> help(x,s(y),0())
       help(x,s(y),c) -> if(le(c,x),x,s(y),c)
       if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
       if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [le#](x0, x1) = x0 + 1,
        
        [if](x0, x1, x2, x3) = x0 + x1,
        
        [help](x0, x1, x2) = x0 + 1,
        
        [mod](x0, x1) = x0 + x1 + 1,
        
        [plus](x0, x1) = x0 + x1,
        
        [minus](x0, x1) = x0 + 1,
        
        [false] = 1,
        
        [s](x0) = x0 + 1,
        
        [true] = 1,
        
        [le](x0, x1) = 1,
        
        [0] = 0
       orientation:
        le#(s(x),s(y)) = x + 2 >= x + 1 = le#(x,y)
        
        le(0(),y) = 1 >= 1 = true()
        
        le(s(x),0()) = 1 >= 1 = false()
        
        le(s(x),s(y)) = 1 >= 1 = le(x,y)
        
        minus(x,0()) = x + 1 >= x = x
        
        minus(0(),s(y)) = 1 >= 0 = 0()
        
        minus(s(x),s(y)) = x + 2 >= x + 1 = minus(x,y)
        
        plus(x,0()) = x >= x = x
        
        plus(x,s(y)) = x + y + 1 >= x + y + 1 = s(plus(x,y))
        
        mod(s(x),0()) = x + 2 >= 0 = 0()
        
        mod(x,s(y)) = x + y + 2 >= x + 1 = help(x,s(y),0())
        
        help(x,s(y),c) = x + 1 >= x + 1 = if(le(c,x),x,s(y),c)
        
        if(true(),x,s(y),c) = x + 1 >= x + 1 = help(x,s(y),plus(c,s(y)))
        
        if(false(),x,s(y),c) = x + 1 >= x + 1 = minus(x,minus(c,s(y)))
       problem:
        DPs:
         
        TRS:
         le(0(),y) -> true()
         le(s(x),0()) -> false()
         le(s(x),s(y)) -> le(x,y)
         minus(x,0()) -> x
         minus(0(),s(y)) -> 0()
         minus(s(x),s(y)) -> minus(x,y)
         plus(x,0()) -> x
         plus(x,s(y)) -> s(plus(x,y))
         mod(s(x),0()) -> 0()
         mod(x,s(y)) -> help(x,s(y),0())
         help(x,s(y),c) -> if(le(c,x),x,s(y),c)
         if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
         if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
       Qed
      
      DPs:
       plus#(x,s(y)) -> plus#(x,y)
      TRS:
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       minus(x,0()) -> x
       minus(0(),s(y)) -> 0()
       minus(s(x),s(y)) -> minus(x,y)
       plus(x,0()) -> x
       plus(x,s(y)) -> s(plus(x,y))
       mod(s(x),0()) -> 0()
       mod(x,s(y)) -> help(x,s(y),0())
       help(x,s(y),c) -> if(le(c,x),x,s(y),c)
       if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
       if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [plus#](x0, x1) = x1 + 1,
        
        [if](x0, x1, x2, x3) = x1,
        
        [help](x0, x1, x2) = x0,
        
        [mod](x0, x1) = x0,
        
        [plus](x0, x1) = x0 + x1,
        
        [minus](x0, x1) = x0,
        
        [false] = 0,
        
        [s](x0) = x0 + 1,
        
        [true] = 0,
        
        [le](x0, x1) = x0 + 1,
        
        [0] = 0
       orientation:
        plus#(x,s(y)) = y + 2 >= y + 1 = plus#(x,y)
        
        le(0(),y) = 1 >= 0 = true()
        
        le(s(x),0()) = x + 2 >= 0 = false()
        
        le(s(x),s(y)) = x + 2 >= x + 1 = le(x,y)
        
        minus(x,0()) = x >= x = x
        
        minus(0(),s(y)) = 0 >= 0 = 0()
        
        minus(s(x),s(y)) = x + 1 >= x = minus(x,y)
        
        plus(x,0()) = x >= x = x
        
        plus(x,s(y)) = x + y + 1 >= x + y + 1 = s(plus(x,y))
        
        mod(s(x),0()) = x + 1 >= 0 = 0()
        
        mod(x,s(y)) = x >= x = help(x,s(y),0())
        
        help(x,s(y),c) = x >= x = if(le(c,x),x,s(y),c)
        
        if(true(),x,s(y),c) = x >= x = help(x,s(y),plus(c,s(y)))
        
        if(false(),x,s(y),c) = x >= x = minus(x,minus(c,s(y)))
       problem:
        DPs:
         
        TRS:
         le(0(),y) -> true()
         le(s(x),0()) -> false()
         le(s(x),s(y)) -> le(x,y)
         minus(x,0()) -> x
         minus(0(),s(y)) -> 0()
         minus(s(x),s(y)) -> minus(x,y)
         plus(x,0()) -> x
         plus(x,s(y)) -> s(plus(x,y))
         mod(s(x),0()) -> 0()
         mod(x,s(y)) -> help(x,s(y),0())
         help(x,s(y),c) -> if(le(c,x),x,s(y),c)
         if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
         if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
       Qed
      
      DPs:
       minus#(s(x),s(y)) -> minus#(x,y)
      TRS:
       le(0(),y) -> true()
       le(s(x),0()) -> false()
       le(s(x),s(y)) -> le(x,y)
       minus(x,0()) -> x
       minus(0(),s(y)) -> 0()
       minus(s(x),s(y)) -> minus(x,y)
       plus(x,0()) -> x
       plus(x,s(y)) -> s(plus(x,y))
       mod(s(x),0()) -> 0()
       mod(x,s(y)) -> help(x,s(y),0())
       help(x,s(y),c) -> if(le(c,x),x,s(y),c)
       if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
       if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [minus#](x0, x1) = x0 + 1,
        
        [if](x0, x1, x2, x3) = x0 + x1,
        
        [help](x0, x1, x2) = x0 + 1,
        
        [mod](x0, x1) = x0 + x1 + 1,
        
        [plus](x0, x1) = x0 + x1,
        
        [minus](x0, x1) = x0 + 1,
        
        [false] = 1,
        
        [s](x0) = x0 + 1,
        
        [true] = 1,
        
        [le](x0, x1) = 1,
        
        [0] = 0
       orientation:
        minus#(s(x),s(y)) = x + 2 >= x + 1 = minus#(x,y)
        
        le(0(),y) = 1 >= 1 = true()
        
        le(s(x),0()) = 1 >= 1 = false()
        
        le(s(x),s(y)) = 1 >= 1 = le(x,y)
        
        minus(x,0()) = x + 1 >= x = x
        
        minus(0(),s(y)) = 1 >= 0 = 0()
        
        minus(s(x),s(y)) = x + 2 >= x + 1 = minus(x,y)
        
        plus(x,0()) = x >= x = x
        
        plus(x,s(y)) = x + y + 1 >= x + y + 1 = s(plus(x,y))
        
        mod(s(x),0()) = x + 2 >= 0 = 0()
        
        mod(x,s(y)) = x + y + 2 >= x + 1 = help(x,s(y),0())
        
        help(x,s(y),c) = x + 1 >= x + 1 = if(le(c,x),x,s(y),c)
        
        if(true(),x,s(y),c) = x + 1 >= x + 1 = help(x,s(y),plus(c,s(y)))
        
        if(false(),x,s(y),c) = x + 1 >= x + 1 = minus(x,minus(c,s(y)))
       problem:
        DPs:
         
        TRS:
         le(0(),y) -> true()
         le(s(x),0()) -> false()
         le(s(x),s(y)) -> le(x,y)
         minus(x,0()) -> x
         minus(0(),s(y)) -> 0()
         minus(s(x),s(y)) -> minus(x,y)
         plus(x,0()) -> x
         plus(x,s(y)) -> s(plus(x,y))
         mod(s(x),0()) -> 0()
         mod(x,s(y)) -> help(x,s(y),0())
         help(x,s(y),c) -> if(le(c,x),x,s(y),c)
         if(true(),x,s(y),c) -> help(x,s(y),plus(c,s(y)))
         if(false(),x,s(y),c) -> minus(x,minus(c,s(y)))
       Qed