MAYBE
Time: 1.201857
TRS:
 { cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y),
  cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), 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(y, 0()), x, y),
                 p 0() -> 0(),
                 p s x -> x,
       and(x, false()) -> false(),
   and(true(), true()) -> true(),
       and(false(), x) -> false(),
          eq(0(), 0()) -> true(),
          eq(0(), s x) -> false(),
          eq(s x, 0()) -> false(),
          eq(s x, s y) -> eq(x, y)}
 DP:
  DP:
   { cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y),
     cond2#(true(), x, y) -> gr#(y, 0()),
     cond2#(true(), x, y) -> p# y,
     cond2#(true(), x, y) -> p# x,
    cond2#(false(), x, y) -> gr#(x, 0()),
    cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y),
    cond2#(false(), x, y) -> and#(eq(x, y), gr(x, 0())),
    cond2#(false(), x, y) -> eq#(x, y),
            gr#(s x, s y) -> gr#(x, y),
     cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y),
     cond1#(true(), x, y) -> gr#(y, 0()),
            eq#(s x, s y) -> eq#(x, y)}
  TRS:
  { cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y),
   cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), 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(y, 0()), x, y),
                  p 0() -> 0(),
                  p s x -> x,
        and(x, false()) -> false(),
    and(true(), true()) -> true(),
        and(false(), x) -> false(),
           eq(0(), 0()) -> true(),
           eq(0(), s x) -> false(),
           eq(s x, 0()) -> false(),
           eq(s x, s y) -> eq(x, y)}
  EDG:
   {(cond2#(false(), x, y) -> eq#(x, y), eq#(s x, s y) -> eq#(x, y))
    (eq#(s x, s y) -> eq#(x, y), eq#(s x, s y) -> eq#(x, y))
    (cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y), cond1#(true(), x, y) -> gr#(y, 0()))
    (cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y), cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(true(), x, y) -> gr#(y, 0()))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(true(), x, y) -> p# y)
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(true(), x, y) -> p# x)
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(false(), x, y) -> gr#(x, 0()))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(false(), x, y) -> and#(eq(x, y), gr(x, 0())))
    (cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y), cond2#(false(), x, y) -> eq#(x, y))
    (gr#(s x, s y) -> gr#(x, y), gr#(s x, s y) -> gr#(x, y))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(true(), x, y) -> gr#(y, 0()))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(true(), x, y) -> p# y)
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(true(), x, y) -> p# x)
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(false(), x, y) -> gr#(x, 0()))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(false(), x, y) -> and#(eq(x, y), gr(x, 0())))
    (cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y), cond2#(false(), x, y) -> eq#(x, y))}
   STATUS:
    arrows: 0.854167
    SCCS (3):
     Scc:
      {gr#(s x, s y) -> gr#(x, y)}
     Scc:
      { cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y),
       cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y),
        cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y)}
     Scc:
      {eq#(s x, s y) -> eq#(x, y)}
     
     SCC (1):
      Strict:
       {gr#(s x, s y) -> gr#(x, y)}
      Weak:
      { cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y),
       cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), 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(y, 0()), x, y),
                      p 0() -> 0(),
                      p s x -> x,
            and(x, false()) -> false(),
        and(true(), true()) -> true(),
            and(false(), x) -> false(),
               eq(0(), 0()) -> true(),
               eq(0(), s x) -> false(),
               eq(s x, 0()) -> false(),
               eq(s x, s y) -> eq(x, y)}
      POLY:
       Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
       Interpretation:
        [cond2](x0, x1, x2) = x0 + x1 + 1,
        
        [cond1](x0, x1, x2) = 0,
        
        [gr](x0, x1) = x0,
        
        [and](x0, x1) = x0 + x1,
        
        [eq](x0, x1) = x0 + x1,
        
        [p](x0) = 1,
        
        [s](x0) = x0 + 1,
        
        [0] = 1,
        
        [true] = 1,
        
        [false] = 1,
        
        [gr#](x0, x1) = x0 + 1
       Strict:
        gr#(s x, s y) -> gr#(x, y)
        2 + 0y + 1x >= 1 + 0y + 1x
       Weak:
        eq(s x, s y) -> eq(x, y)
        2 + 1y + 1x >= 0 + 1y + 1x
        eq(s x, 0()) -> false()
        2 + 1x >= 1
        eq(0(), s x) -> false()
        2 + 1x >= 1
        eq(0(), 0()) -> true()
        2 >= 1
        and(false(), x) -> false()
        1 + 1x >= 1
        and(true(), true()) -> true()
        2 >= 1
        and(x, false()) -> false()
        1 + 1x >= 1
        p s x -> x
        1 + 0x >= 1x
        p 0() -> 0()
        1 >= 1
        cond1(true(), x, y) -> cond2(gr(y, 0()), x, y)
        0 + 0y + 0x >= 1 + 2y + 0x
        gr(s x, s y) -> gr(x, y)
        1 + 0y + 1x >= 0 + 0y + 1x
        gr(s x, 0()) -> true()
        1 + 1x >= 1
        gr(0(), x) -> false()
        1 + 0x >= 1
        cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), x, y)
        2 + 1y + 0x >= 0 + 0y + 0x
        cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y)
        2 + 1y + 0x >= 2 + 1y + 0x
      Qed
    SCC (3):
     Strict:
      { cond2#(true(), x, y) -> cond2#(gr(y, 0()), p x, p y),
       cond2#(false(), x, y) -> cond1#(and(eq(x, y), gr(x, 0())), x, y),
        cond1#(true(), x, y) -> cond2#(gr(y, 0()), x, y)}
     Weak:
     { cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y),
      cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), 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(y, 0()), x, y),
                     p 0() -> 0(),
                     p s x -> x,
           and(x, false()) -> false(),
       and(true(), true()) -> true(),
           and(false(), x) -> false(),
              eq(0(), 0()) -> true(),
              eq(0(), s x) -> false(),
              eq(s x, 0()) -> false(),
              eq(s x, s y) -> eq(x, y)}
     Fail
    
    SCC (1):
     Strict:
      {eq#(s x, s y) -> eq#(x, y)}
     Weak:
     { cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y),
      cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), 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(y, 0()), x, y),
                     p 0() -> 0(),
                     p s x -> x,
           and(x, false()) -> false(),
       and(true(), true()) -> true(),
           and(false(), x) -> false(),
              eq(0(), 0()) -> true(),
              eq(0(), s x) -> false(),
              eq(s x, 0()) -> false(),
              eq(s x, s y) -> eq(x, y)}
     POLY:
      Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
      Interpretation:
       [cond2](x0, x1, x2) = x0 + x1 + 1,
       
       [cond1](x0, x1, x2) = 0,
       
       [gr](x0, x1) = x0,
       
       [and](x0, x1) = x0 + x1,
       
       [eq](x0, x1) = x0 + x1,
       
       [p](x0) = 1,
       
       [s](x0) = x0 + 1,
       
       [0] = 1,
       
       [true] = 1,
       
       [false] = 1,
       
       [eq#](x0, x1) = x0 + 1
      Strict:
       eq#(s x, s y) -> eq#(x, y)
       2 + 0y + 1x >= 1 + 0y + 1x
      Weak:
       eq(s x, s y) -> eq(x, y)
       2 + 1y + 1x >= 0 + 1y + 1x
       eq(s x, 0()) -> false()
       2 + 1x >= 1
       eq(0(), s x) -> false()
       2 + 1x >= 1
       eq(0(), 0()) -> true()
       2 >= 1
       and(false(), x) -> false()
       1 + 1x >= 1
       and(true(), true()) -> true()
       2 >= 1
       and(x, false()) -> false()
       1 + 1x >= 1
       p s x -> x
       1 + 0x >= 1x
       p 0() -> 0()
       1 >= 1
       cond1(true(), x, y) -> cond2(gr(y, 0()), x, y)
       0 + 0y + 0x >= 1 + 2y + 0x
       gr(s x, s y) -> gr(x, y)
       1 + 0y + 1x >= 0 + 0y + 1x
       gr(s x, 0()) -> true()
       1 + 1x >= 1
       gr(0(), x) -> false()
       1 + 0x >= 1
       cond2(false(), x, y) -> cond1(and(eq(x, y), gr(x, 0())), x, y)
       2 + 1y + 0x >= 0 + 0y + 0x
       cond2(true(), x, y) -> cond2(gr(y, 0()), p x, p y)
       2 + 1y + 0x >= 2 + 1y + 0x
     Qed