MAYBE

Problem:
 cond1(true(),x,y) -> cond2(gr(x,y),x,y)
 cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
 cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
 cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
 cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
 cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
 cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
 gr(0(),x) -> false()
 gr(s(x),0()) -> true()
 gr(s(x),s(y)) -> gr(x,y)
 and(true(),true()) -> true()
 and(false(),x) -> false()
 and(x,false()) -> false()
 p(0()) -> 0()
 p(s(x)) -> x

Proof:
 DP Processor:
  DPs:
   cond1#(true(),x,y) -> gr#(x,y)
   cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
   cond2#(true(),x,y) -> gr#(x,0())
   cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y)
   cond2#(false(),x,y) -> gr#(y,0())
   cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y)
   cond3#(true(),x,y) -> p#(x)
   cond3#(true(),x,y) -> gr#(x,0())
   cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
   cond3#(false(),x,y) -> gr#(y,0())
   cond3#(false(),x,y) -> gr#(x,0())
   cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
   cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
   cond4#(true(),x,y) -> p#(y)
   cond4#(true(),x,y) -> gr#(y,0())
   cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
   cond4#(false(),x,y) -> gr#(y,0())
   cond4#(false(),x,y) -> gr#(x,0())
   cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
   cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
   gr#(s(x),s(y)) -> gr#(x,y)
  TRS:
   cond1(true(),x,y) -> cond2(gr(x,y),x,y)
   cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
   cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
   cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
   cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
   cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
   cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
   gr(0(),x) -> false()
   gr(s(x),0()) -> true()
   gr(s(x),s(y)) -> gr(x,y)
   and(true(),true()) -> true()
   and(false(),x) -> false()
   and(x,false()) -> false()
   p(0()) -> 0()
   p(s(x)) -> x
  TDG Processor:
   DPs:
    cond1#(true(),x,y) -> gr#(x,y)
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
    cond2#(true(),x,y) -> gr#(x,0())
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y)
    cond2#(false(),x,y) -> gr#(y,0())
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y)
    cond3#(true(),x,y) -> p#(x)
    cond3#(true(),x,y) -> gr#(x,0())
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
    cond3#(false(),x,y) -> gr#(y,0())
    cond3#(false(),x,y) -> gr#(x,0())
    cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    cond4#(true(),x,y) -> p#(y)
    cond4#(true(),x,y) -> gr#(y,0())
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
    cond4#(false(),x,y) -> gr#(y,0())
    cond4#(false(),x,y) -> gr#(x,0())
    cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    gr#(s(x),s(y)) -> gr#(x,y)
   TRS:
    cond1(true(),x,y) -> cond2(gr(x,y),x,y)
    cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
    cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
    cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
    cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
    cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
    cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
    gr(0(),x) -> false()
    gr(s(x),0()) -> true()
    gr(s(x),s(y)) -> gr(x,y)
    and(true(),true()) -> true()
    and(false(),x) -> false()
    and(x,false()) -> false()
    p(0()) -> 0()
    p(s(x)) -> x
   graph:
    cond4#(false(),x,y) -> gr#(y,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond4#(false(),x,y) -> gr#(x,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
    cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
    cond1#(true(),x,y) -> gr#(x,y)
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(false(),x,y) -> gr#(x,0())
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(false(),x,y) -> gr#(y,0())
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(true(),x,y) -> gr#(y,0())
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
    cond4#(true(),x,y) -> p#(y)
    cond4#(true(),x,y) -> gr#(y,0()) -> gr#(s(x),s(y)) -> gr#(x,y)
    cond3#(false(),x,y) -> gr#(y,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond3#(false(),x,y) -> gr#(x,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
    cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
    cond1#(true(),x,y) -> gr#(x,y)
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(false(),x,y) -> gr#(x,0())
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(false(),x,y) -> gr#(y,0())
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(true(),x,y) -> gr#(x,0())
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
    cond3#(true(),x,y) -> p#(x)
    cond3#(true(),x,y) -> gr#(x,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(false(),x,y) -> gr#(x,0())
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(false(),x,y) -> gr#(y,0())
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(true(),x,y) -> gr#(y,0())
    cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
    cond4#(true(),x,y) -> p#(y)
    cond2#(false(),x,y) -> gr#(y,0()) ->
    gr#(s(x),s(y)) -> gr#(x,y)
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(false(),x,y) -> gr#(x,0())
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(false(),x,y) -> gr#(y,0())
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(true(),x,y) -> gr#(x,0())
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
    cond3#(true(),x,y) -> p#(x)
    cond2#(true(),x,y) -> gr#(x,0()) -> 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#(false(),x,y) -> cond4#(gr(y,0()),x,y)
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) ->
    cond2#(false(),x,y) -> gr#(y,0())
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) ->
    cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y)
    cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) ->
    cond2#(true(),x,y) -> gr#(x,0())
    cond1#(true(),x,y) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y)
   EDG Processor:
    DPs:
     cond1#(true(),x,y) -> gr#(x,y)
     cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
     cond2#(true(),x,y) -> gr#(x,0())
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y)
     cond2#(false(),x,y) -> gr#(y,0())
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y)
     cond3#(true(),x,y) -> p#(x)
     cond3#(true(),x,y) -> gr#(x,0())
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
     cond3#(false(),x,y) -> gr#(y,0())
     cond3#(false(),x,y) -> gr#(x,0())
     cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
     cond4#(true(),x,y) -> p#(y)
     cond4#(true(),x,y) -> gr#(y,0())
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
     cond4#(false(),x,y) -> gr#(y,0())
     cond4#(false(),x,y) -> gr#(x,0())
     cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
     gr#(s(x),s(y)) -> gr#(x,y)
    TRS:
     cond1(true(),x,y) -> cond2(gr(x,y),x,y)
     cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
     cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
     cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
     cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
     cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
     cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
     gr(0(),x) -> false()
     gr(s(x),0()) -> true()
     gr(s(x),s(y)) -> gr(x,y)
     and(true(),true()) -> true()
     and(false(),x) -> false()
     and(x,false()) -> false()
     p(0()) -> 0()
     p(s(x)) -> x
    graph:
     cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
     cond1#(true(),x,y) -> gr#(x,y)
     cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
     cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(true(),x,y) -> p#(y)
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(true(),x,y) -> gr#(y,0())
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(false(),x,y) -> gr#(y,0())
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(false(),x,y) -> gr#(x,0())
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y)) ->
     cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
     cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
     cond1#(true(),x,y) -> gr#(x,y)
     cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y) ->
     cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(true(),x,y) -> p#(x)
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(true(),x,y) -> gr#(x,0())
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(false(),x,y) -> gr#(y,0())
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(false(),x,y) -> gr#(x,0())
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y) ->
     cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(true(),x,y) -> p#(y)
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(true(),x,y) -> gr#(y,0())
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(false(),x,y) -> gr#(y,0())
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(false(),x,y) -> gr#(x,0())
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y) ->
     cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(true(),x,y) -> p#(x)
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(true(),x,y) -> gr#(x,0())
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(false(),x,y) -> gr#(y,0())
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(false(),x,y) -> gr#(x,0())
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(false(),x,y) -> and#(gr(x,0()),gr(y,0()))
     cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y) ->
     cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),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) -> cond3#(gr(x,0()),x,y)
     cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) ->
     cond2#(false(),x,y) -> gr#(y,0())
     cond1#(true(),x,y) -> cond2#(gr(x,y),x,y) ->
     cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y)
     cond1#(true(),x,y) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y)
    SCC Processor:
     #sccs: 2
     #rules: 8
     #arcs: 38/441
     DPs:
      cond4#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
      cond1#(true(),x,y) -> cond2#(gr(x,y),x,y)
      cond2#(false(),x,y) -> cond4#(gr(y,0()),x,y)
      cond4#(true(),x,y) -> cond4#(gr(y,0()),x,p(y))
      cond2#(true(),x,y) -> cond3#(gr(x,0()),x,y)
      cond3#(false(),x,y) -> cond1#(and(gr(x,0()),gr(y,0())),x,y)
      cond3#(true(),x,y) -> cond3#(gr(x,0()),p(x),y)
     TRS:
      cond1(true(),x,y) -> cond2(gr(x,y),x,y)
      cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
      cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
      cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
      cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
      cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
      cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
      gr(0(),x) -> false()
      gr(s(x),0()) -> true()
      gr(s(x),s(y)) -> gr(x,y)
      and(true(),true()) -> true()
      and(false(),x) -> false()
      and(x,false()) -> false()
      p(0()) -> 0()
      p(s(x)) -> x
     Open
     
     DPs:
      gr#(s(x),s(y)) -> gr#(x,y)
     TRS:
      cond1(true(),x,y) -> cond2(gr(x,y),x,y)
      cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
      cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
      cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
      cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
      cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
      cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
      gr(0(),x) -> false()
      gr(s(x),0()) -> true()
      gr(s(x),s(y)) -> gr(x,y)
      and(true(),true()) -> true()
      and(false(),x) -> false()
      and(x,false()) -> false()
      p(0()) -> 0()
      p(s(x)) -> x
     KBO Processor:
      argument filtering:
       pi(true) = []
       pi(cond1) = 2
       pi(gr) = [1]
       pi(cond2) = 2
       pi(0) = []
       pi(cond3) = 2
       pi(false) = []
       pi(cond4) = 2
       pi(p) = 0
       pi(and) = [1]
       pi(s) = [0]
       pi(gr#) = 1
      weight function:
       w0 = 1
       w(gr#) = w(s) = w(p) = w(cond4) = w(false) = w(cond3) = w(0) = w(
       cond2) = w(gr) = w(cond1) = w(true) = 1
       w(and) = 0
      precedence:
       gr# ~ s ~ and ~ 0 ~ cond2 ~ gr > p ~ cond4 ~ false ~ cond3 ~ cond1 ~ true
      problem:
       DPs:
        
       TRS:
        cond1(true(),x,y) -> cond2(gr(x,y),x,y)
        cond2(true(),x,y) -> cond3(gr(x,0()),x,y)
        cond2(false(),x,y) -> cond4(gr(y,0()),x,y)
        cond3(true(),x,y) -> cond3(gr(x,0()),p(x),y)
        cond3(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
        cond4(true(),x,y) -> cond4(gr(y,0()),x,p(y))
        cond4(false(),x,y) -> cond1(and(gr(x,0()),gr(y,0())),x,y)
        gr(0(),x) -> false()
        gr(s(x),0()) -> true()
        gr(s(x),s(y)) -> gr(x,y)
        and(true(),true()) -> true()
        and(false(),x) -> false()
        and(x,false()) -> false()
        p(0()) -> 0()
        p(s(x)) -> x
      Qed