MAYBE
Time: 0.053458
TRS:
 {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)),
          gr(0(), x) -> false(),
        gr(s x, 0()) -> true(),
        gr(s x, s y) -> gr(x, y),
         add(0(), x) -> x,
         add(s x, y) -> s add(x, y)}
 DP:
  DP:
   {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)),
    cond#(true(), x, y) -> gr#(x, y),
    cond#(true(), x, y) -> add#(x, y),
          gr#(s x, s y) -> gr#(x, y),
           add#(s x, y) -> add#(x, y)}
  TRS:
  {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)),
           gr(0(), x) -> false(),
         gr(s x, 0()) -> true(),
         gr(s x, s y) -> gr(x, y),
          add(0(), x) -> x,
          add(s x, y) -> s add(x, y)}
  UR:
   {  gr(0(), x) -> false(),
    gr(s x, 0()) -> true(),
    gr(s x, s y) -> gr(x, y),
     add(0(), x) -> x,
     add(s x, y) -> s add(x, y),
         a(z, w) -> z,
         a(z, w) -> w}
   EDG:
    {(cond#(true(), x, y) -> add#(x, y), add#(s x, y) -> add#(x, y))
     (add#(s x, y) -> add#(x, y), add#(s x, y) -> add#(x, y))
     (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)))
     (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> gr#(x, y))
     (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> add#(x, y))
     (gr#(s x, s y) -> gr#(x, y), gr#(s x, s y) -> gr#(x, y))
     (cond#(true(), x, y) -> gr#(x, y), gr#(s x, s y) -> gr#(x, y))}
    STATUS:
     arrows: 0.720000
     SCCS (3):
      Scc:
       {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y))}
      Scc:
       {add#(s x, y) -> add#(x, y)}
      Scc:
       {gr#(s x, s y) -> gr#(x, y)}
      
      SCC (1):
       Strict:
        {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y))}
       Weak:
       {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)),
                gr(0(), x) -> false(),
              gr(s x, 0()) -> true(),
              gr(s x, s y) -> gr(x, y),
               add(0(), x) -> x,
               add(s x, y) -> s add(x, y)}
       Fail
      
      SCC (1):
       Strict:
        {add#(s x, y) -> add#(x, y)}
       Weak:
       {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)),
                gr(0(), x) -> false(),
              gr(s x, 0()) -> true(),
              gr(s x, s y) -> gr(x, y),
               add(0(), x) -> x,
               add(s x, y) -> s add(x, y)}
       POLY:
        Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
        Interpretation:
         [cond](x0, x1, x2) = x0 + x1 + 1,
         
         [gr](x0, x1) = x0,
         
         [add](x0, x1) = x0,
         
         [s](x0) = x0 + 1,
         
         [true] = 1,
         
         [false] = 0,
         
         [0] = 0,
         
         [add#](x0, x1) = x0
        Strict:
         add#(s x, y) -> add#(x, y)
         1 + 1x + 0y >= 0 + 1x + 0y
        Weak:
         add(s x, y) -> s add(x, y)
         0 + 0x + 1y >= 1 + 0x + 1y
         add(0(), x) -> x
         0 + 1x >= 1x
         gr(s x, s y) -> gr(x, y)
         1 + 0x + 1y >= 0 + 0x + 1y
         gr(s x, 0()) -> true()
         0 + 0x >= 1
         gr(0(), x) -> false()
         0 + 1x >= 0
         cond(true(), x, y) -> cond(gr(x, y), x, add(x, y))
         2 + 0x + 1y >= 1 + 0x + 2y
       Qed
     
     SCC (1):
      Strict:
       {gr#(s x, s y) -> gr#(x, y)}
      Weak:
      {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)),
               gr(0(), x) -> false(),
             gr(s x, 0()) -> true(),
             gr(s x, s y) -> gr(x, y),
              add(0(), x) -> x,
              add(s x, y) -> s add(x, y)}
      POLY:
       Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
       Interpretation:
        [cond](x0, x1, x2) = x0 + x1 + 1,
        
        [gr](x0, x1) = x0 + x1,
        
        [add](x0, x1) = x0 + x1,
        
        [s](x0) = x0 + 1,
        
        [true] = 1,
        
        [false] = 0,
        
        [0] = 0,
        
        [gr#](x0, x1) = x0 + 1
       Strict:
        gr#(s x, s y) -> gr#(x, y)
        2 + 1x + 0y >= 1 + 1x + 0y
       Weak:
        add(s x, y) -> s add(x, y)
        1 + 1x + 1y >= 1 + 1x + 1y
        add(0(), x) -> x
        0 + 1x >= 1x
        gr(s x, s y) -> gr(x, y)
        2 + 1x + 1y >= 0 + 1x + 1y
        gr(s x, 0()) -> true()
        1 + 1x >= 1
        gr(0(), x) -> false()
        0 + 1x >= 0
        cond(true(), x, y) -> cond(gr(x, y), x, add(x, y))
        2 + 0x + 1y >= 1 + 2x + 2y
      Qed