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