MAYBE

Problem:
 minus(s(x),y) -> if(gt(s(x),y),x,y)
 if(true(),x,y) -> s(minus(x,y))
 if(false(),x,y) -> 0()
 gcd(x,y) -> if1(ge(x,y),x,y)
 if1(true(),x,y) -> if2(gt(y,0()),x,y)
 if1(false(),x,y) -> gcd(y,x)
 if2(true(),x,y) -> gcd(minus(x,y),y)
 if2(false(),x,y) -> x
 gt(0(),y) -> false()
 gt(s(x),0()) -> true()
 gt(s(x),s(y)) -> gt(x,y)
 ge(x,0()) -> true()
 ge(0(),s(x)) -> false()
 ge(s(x),s(y)) -> ge(x,y)

Proof:
 DP Processor:
  DPs:
   minus#(s(x),y) -> gt#(s(x),y)
   minus#(s(x),y) -> if#(gt(s(x),y),x,y)
   if#(true(),x,y) -> minus#(x,y)
   gcd#(x,y) -> ge#(x,y)
   gcd#(x,y) -> if1#(ge(x,y),x,y)
   if1#(true(),x,y) -> gt#(y,0())
   if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
   if1#(false(),x,y) -> gcd#(y,x)
   if2#(true(),x,y) -> minus#(x,y)
   if2#(true(),x,y) -> gcd#(minus(x,y),y)
   gt#(s(x),s(y)) -> gt#(x,y)
   ge#(s(x),s(y)) -> ge#(x,y)
  TRS:
   minus(s(x),y) -> if(gt(s(x),y),x,y)
   if(true(),x,y) -> s(minus(x,y))
   if(false(),x,y) -> 0()
   gcd(x,y) -> if1(ge(x,y),x,y)
   if1(true(),x,y) -> if2(gt(y,0()),x,y)
   if1(false(),x,y) -> gcd(y,x)
   if2(true(),x,y) -> gcd(minus(x,y),y)
   if2(false(),x,y) -> x
   gt(0(),y) -> false()
   gt(s(x),0()) -> true()
   gt(s(x),s(y)) -> gt(x,y)
   ge(x,0()) -> true()
   ge(0(),s(x)) -> false()
   ge(s(x),s(y)) -> ge(x,y)
  TDG Processor:
   DPs:
    minus#(s(x),y) -> gt#(s(x),y)
    minus#(s(x),y) -> if#(gt(s(x),y),x,y)
    if#(true(),x,y) -> minus#(x,y)
    gcd#(x,y) -> ge#(x,y)
    gcd#(x,y) -> if1#(ge(x,y),x,y)
    if1#(true(),x,y) -> gt#(y,0())
    if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
    if1#(false(),x,y) -> gcd#(y,x)
    if2#(true(),x,y) -> minus#(x,y)
    if2#(true(),x,y) -> gcd#(minus(x,y),y)
    gt#(s(x),s(y)) -> gt#(x,y)
    ge#(s(x),s(y)) -> ge#(x,y)
   TRS:
    minus(s(x),y) -> if(gt(s(x),y),x,y)
    if(true(),x,y) -> s(minus(x,y))
    if(false(),x,y) -> 0()
    gcd(x,y) -> if1(ge(x,y),x,y)
    if1(true(),x,y) -> if2(gt(y,0()),x,y)
    if1(false(),x,y) -> gcd(y,x)
    if2(true(),x,y) -> gcd(minus(x,y),y)
    if2(false(),x,y) -> x
    gt(0(),y) -> false()
    gt(s(x),0()) -> true()
    gt(s(x),s(y)) -> gt(x,y)
    ge(x,0()) -> true()
    ge(0(),s(x)) -> false()
    ge(s(x),s(y)) -> ge(x,y)
   graph:
    if2#(true(),x,y) -> gcd#(minus(x,y),y) ->
    gcd#(x,y) -> if1#(ge(x,y),x,y)
    if2#(true(),x,y) -> gcd#(minus(x,y),y) -> gcd#(x,y) -> ge#(x,y)
    if2#(true(),x,y) -> minus#(x,y) ->
    minus#(s(x),y) -> if#(gt(s(x),y),x,y)
    if2#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> gt#(s(x),y)
    if1#(false(),x,y) -> gcd#(y,x) -> gcd#(x,y) -> if1#(ge(x,y),x,y)
    if1#(false(),x,y) -> gcd#(y,x) -> gcd#(x,y) -> ge#(x,y)
    if1#(true(),x,y) -> if2#(gt(y,0()),x,y) ->
    if2#(true(),x,y) -> gcd#(minus(x,y),y)
    if1#(true(),x,y) -> if2#(gt(y,0()),x,y) ->
    if2#(true(),x,y) -> minus#(x,y)
    if1#(true(),x,y) -> gt#(y,0()) -> gt#(s(x),s(y)) -> gt#(x,y)
    ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y)
    gcd#(x,y) -> if1#(ge(x,y),x,y) -> if1#(false(),x,y) -> gcd#(y,x)
    gcd#(x,y) -> if1#(ge(x,y),x,y) ->
    if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
    gcd#(x,y) -> if1#(ge(x,y),x,y) -> if1#(true(),x,y) -> gt#(y,0())
    gcd#(x,y) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y)
    if#(true(),x,y) -> minus#(x,y) ->
    minus#(s(x),y) -> if#(gt(s(x),y),x,y)
    if#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> gt#(s(x),y)
    gt#(s(x),s(y)) -> gt#(x,y) -> gt#(s(x),s(y)) -> gt#(x,y)
    minus#(s(x),y) -> if#(gt(s(x),y),x,y) ->
    if#(true(),x,y) -> minus#(x,y)
    minus#(s(x),y) -> gt#(s(x),y) -> gt#(s(x),s(y)) -> gt#(x,y)
   EDG Processor:
    DPs:
     minus#(s(x),y) -> gt#(s(x),y)
     minus#(s(x),y) -> if#(gt(s(x),y),x,y)
     if#(true(),x,y) -> minus#(x,y)
     gcd#(x,y) -> ge#(x,y)
     gcd#(x,y) -> if1#(ge(x,y),x,y)
     if1#(true(),x,y) -> gt#(y,0())
     if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
     if1#(false(),x,y) -> gcd#(y,x)
     if2#(true(),x,y) -> minus#(x,y)
     if2#(true(),x,y) -> gcd#(minus(x,y),y)
     gt#(s(x),s(y)) -> gt#(x,y)
     ge#(s(x),s(y)) -> ge#(x,y)
    TRS:
     minus(s(x),y) -> if(gt(s(x),y),x,y)
     if(true(),x,y) -> s(minus(x,y))
     if(false(),x,y) -> 0()
     gcd(x,y) -> if1(ge(x,y),x,y)
     if1(true(),x,y) -> if2(gt(y,0()),x,y)
     if1(false(),x,y) -> gcd(y,x)
     if2(true(),x,y) -> gcd(minus(x,y),y)
     if2(false(),x,y) -> x
     gt(0(),y) -> false()
     gt(s(x),0()) -> true()
     gt(s(x),s(y)) -> gt(x,y)
     ge(x,0()) -> true()
     ge(0(),s(x)) -> false()
     ge(s(x),s(y)) -> ge(x,y)
    graph:
     if2#(true(),x,y) -> gcd#(minus(x,y),y) ->
     gcd#(x,y) -> ge#(x,y)
     if2#(true(),x,y) -> gcd#(minus(x,y),y) ->
     gcd#(x,y) -> if1#(ge(x,y),x,y)
     if2#(true(),x,y) -> minus#(x,y) ->
     minus#(s(x),y) -> gt#(s(x),y)
     if2#(true(),x,y) -> minus#(x,y) ->
     minus#(s(x),y) -> if#(gt(s(x),y),x,y)
     if1#(false(),x,y) -> gcd#(y,x) -> gcd#(x,y) -> ge#(x,y)
     if1#(false(),x,y) -> gcd#(y,x) ->
     gcd#(x,y) -> if1#(ge(x,y),x,y)
     if1#(true(),x,y) -> if2#(gt(y,0()),x,y) ->
     if2#(true(),x,y) -> minus#(x,y)
     if1#(true(),x,y) -> if2#(gt(y,0()),x,y) ->
     if2#(true(),x,y) -> gcd#(minus(x,y),y)
     ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y)
     gcd#(x,y) -> if1#(ge(x,y),x,y) -> if1#(true(),x,y) -> gt#(y,0())
     gcd#(x,y) -> if1#(ge(x,y),x,y) ->
     if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
     gcd#(x,y) -> if1#(ge(x,y),x,y) -> if1#(false(),x,y) -> gcd#(y,x)
     gcd#(x,y) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y)
     if#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> gt#(s(x),y)
     if#(true(),x,y) -> minus#(x,y) ->
     minus#(s(x),y) -> if#(gt(s(x),y),x,y)
     gt#(s(x),s(y)) -> gt#(x,y) -> gt#(s(x),s(y)) -> gt#(x,y)
     minus#(s(x),y) -> if#(gt(s(x),y),x,y) ->
     if#(true(),x,y) -> minus#(x,y)
     minus#(s(x),y) -> gt#(s(x),y) -> gt#(s(x),s(y)) -> gt#(x,y)
    SCC Processor:
     #sccs: 4
     #rules: 8
     #arcs: 18/144
     DPs:
      if2#(true(),x,y) -> gcd#(minus(x,y),y)
      gcd#(x,y) -> if1#(ge(x,y),x,y)
      if1#(false(),x,y) -> gcd#(y,x)
      if1#(true(),x,y) -> if2#(gt(y,0()),x,y)
     TRS:
      minus(s(x),y) -> if(gt(s(x),y),x,y)
      if(true(),x,y) -> s(minus(x,y))
      if(false(),x,y) -> 0()
      gcd(x,y) -> if1(ge(x,y),x,y)
      if1(true(),x,y) -> if2(gt(y,0()),x,y)
      if1(false(),x,y) -> gcd(y,x)
      if2(true(),x,y) -> gcd(minus(x,y),y)
      if2(false(),x,y) -> x
      gt(0(),y) -> false()
      gt(s(x),0()) -> true()
      gt(s(x),s(y)) -> gt(x,y)
      ge(x,0()) -> true()
      ge(0(),s(x)) -> false()
      ge(s(x),s(y)) -> ge(x,y)
     Open
     
     DPs:
      minus#(s(x),y) -> if#(gt(s(x),y),x,y)
      if#(true(),x,y) -> minus#(x,y)
     TRS:
      minus(s(x),y) -> if(gt(s(x),y),x,y)
      if(true(),x,y) -> s(minus(x,y))
      if(false(),x,y) -> 0()
      gcd(x,y) -> if1(ge(x,y),x,y)
      if1(true(),x,y) -> if2(gt(y,0()),x,y)
      if1(false(),x,y) -> gcd(y,x)
      if2(true(),x,y) -> gcd(minus(x,y),y)
      if2(false(),x,y) -> x
      gt(0(),y) -> false()
      gt(s(x),0()) -> true()
      gt(s(x),s(y)) -> gt(x,y)
      ge(x,0()) -> true()
      ge(0(),s(x)) -> false()
      ge(s(x),s(y)) -> ge(x,y)
     Matrix Interpretation Processor: dim=1
      
      interpretation:
       [if#](x0, x1, x2) = 2x1 + 1,
       
       [minus#](x0, x1) = 2x0,
       
       [if2](x0, x1, x2) = 4x1 + 4x2,
       
       [if1](x0, x1, x2) = 4x1 + 4x2,
       
       [ge](x0, x1) = 0,
       
       [gcd](x0, x1) = 4x0 + 4x1,
       
       [0] = 4,
       
       [false] = 0,
       
       [true] = 0,
       
       [if](x0, x1, x2) = 2x1 + 4,
       
       [gt](x0, x1) = 0,
       
       [minus](x0, x1) = x0,
       
       [s](x0) = 2x0 + 4
      orientation:
       minus#(s(x),y) = 4x + 8 >= 2x + 1 = if#(gt(s(x),y),x,y)
       
       if#(true(),x,y) = 2x + 1 >= 2x = minus#(x,y)
       
       minus(s(x),y) = 2x + 4 >= 2x + 4 = if(gt(s(x),y),x,y)
       
       if(true(),x,y) = 2x + 4 >= 2x + 4 = s(minus(x,y))
       
       if(false(),x,y) = 2x + 4 >= 4 = 0()
       
       gcd(x,y) = 4x + 4y >= 4x + 4y = if1(ge(x,y),x,y)
       
       if1(true(),x,y) = 4x + 4y >= 4x + 4y = if2(gt(y,0()),x,y)
       
       if1(false(),x,y) = 4x + 4y >= 4x + 4y = gcd(y,x)
       
       if2(true(),x,y) = 4x + 4y >= 4x + 4y = gcd(minus(x,y),y)
       
       if2(false(),x,y) = 4x + 4y >= x = x
       
       gt(0(),y) = 0 >= 0 = false()
       
       gt(s(x),0()) = 0 >= 0 = true()
       
       gt(s(x),s(y)) = 0 >= 0 = gt(x,y)
       
       ge(x,0()) = 0 >= 0 = true()
       
       ge(0(),s(x)) = 0 >= 0 = false()
       
       ge(s(x),s(y)) = 0 >= 0 = ge(x,y)
      problem:
       DPs:
        
       TRS:
        minus(s(x),y) -> if(gt(s(x),y),x,y)
        if(true(),x,y) -> s(minus(x,y))
        if(false(),x,y) -> 0()
        gcd(x,y) -> if1(ge(x,y),x,y)
        if1(true(),x,y) -> if2(gt(y,0()),x,y)
        if1(false(),x,y) -> gcd(y,x)
        if2(true(),x,y) -> gcd(minus(x,y),y)
        if2(false(),x,y) -> x
        gt(0(),y) -> false()
        gt(s(x),0()) -> true()
        gt(s(x),s(y)) -> gt(x,y)
        ge(x,0()) -> true()
        ge(0(),s(x)) -> false()
        ge(s(x),s(y)) -> ge(x,y)
      Qed
     
     DPs:
      gt#(s(x),s(y)) -> gt#(x,y)
     TRS:
      minus(s(x),y) -> if(gt(s(x),y),x,y)
      if(true(),x,y) -> s(minus(x,y))
      if(false(),x,y) -> 0()
      gcd(x,y) -> if1(ge(x,y),x,y)
      if1(true(),x,y) -> if2(gt(y,0()),x,y)
      if1(false(),x,y) -> gcd(y,x)
      if2(true(),x,y) -> gcd(minus(x,y),y)
      if2(false(),x,y) -> x
      gt(0(),y) -> false()
      gt(s(x),0()) -> true()
      gt(s(x),s(y)) -> gt(x,y)
      ge(x,0()) -> true()
      ge(0(),s(x)) -> false()
      ge(s(x),s(y)) -> ge(x,y)
     Matrix Interpretation Processor: dim=1
      
      interpretation:
       [gt#](x0, x1) = x0 + x1 + 3,
       
       [if2](x0, x1, x2) = x1 + x2 + 1,
       
       [if1](x0, x1, x2) = x1 + x2 + 1,
       
       [ge](x0, x1) = 2x0 + 1,
       
       [gcd](x0, x1) = x0 + x1 + 1,
       
       [0] = 2,
       
       [false] = 0,
       
       [true] = 0,
       
       [if](x0, x1, x2) = 2x1 + 5/2,
       
       [gt](x0, x1) = 3x0 + 3x1 + 1,
       
       [minus](x0, x1) = x0,
       
       [s](x0) = 2x0 + 5/2
      orientation:
       gt#(s(x),s(y)) = 2x + 2y + 8 >= x + y + 3 = gt#(x,y)
       
       minus(s(x),y) = 2x + 5/2 >= 2x + 5/2 = if(gt(s(x),y),x,y)
       
       if(true(),x,y) = 2x + 5/2 >= 2x + 5/2 = s(minus(x,y))
       
       if(false(),x,y) = 2x + 5/2 >= 2 = 0()
       
       gcd(x,y) = x + y + 1 >= x + y + 1 = if1(ge(x,y),x,y)
       
       if1(true(),x,y) = x + y + 1 >= x + y + 1 = if2(gt(y,0()),x,y)
       
       if1(false(),x,y) = x + y + 1 >= x + y + 1 = gcd(y,x)
       
       if2(true(),x,y) = x + y + 1 >= x + y + 1 = gcd(minus(x,y),y)
       
       if2(false(),x,y) = x + y + 1 >= x = x
       
       gt(0(),y) = 3y + 7 >= 0 = false()
       
       gt(s(x),0()) = 6x + 29/2 >= 0 = true()
       
       gt(s(x),s(y)) = 6x + 6y + 16 >= 3x + 3y + 1 = gt(x,y)
       
       ge(x,0()) = 2x + 1 >= 0 = true()
       
       ge(0(),s(x)) = 5 >= 0 = false()
       
       ge(s(x),s(y)) = 4x + 6 >= 2x + 1 = ge(x,y)
      problem:
       DPs:
        
       TRS:
        minus(s(x),y) -> if(gt(s(x),y),x,y)
        if(true(),x,y) -> s(minus(x,y))
        if(false(),x,y) -> 0()
        gcd(x,y) -> if1(ge(x,y),x,y)
        if1(true(),x,y) -> if2(gt(y,0()),x,y)
        if1(false(),x,y) -> gcd(y,x)
        if2(true(),x,y) -> gcd(minus(x,y),y)
        if2(false(),x,y) -> x
        gt(0(),y) -> false()
        gt(s(x),0()) -> true()
        gt(s(x),s(y)) -> gt(x,y)
        ge(x,0()) -> true()
        ge(0(),s(x)) -> false()
        ge(s(x),s(y)) -> ge(x,y)
      Qed
     
     DPs:
      ge#(s(x),s(y)) -> ge#(x,y)
     TRS:
      minus(s(x),y) -> if(gt(s(x),y),x,y)
      if(true(),x,y) -> s(minus(x,y))
      if(false(),x,y) -> 0()
      gcd(x,y) -> if1(ge(x,y),x,y)
      if1(true(),x,y) -> if2(gt(y,0()),x,y)
      if1(false(),x,y) -> gcd(y,x)
      if2(true(),x,y) -> gcd(minus(x,y),y)
      if2(false(),x,y) -> x
      gt(0(),y) -> false()
      gt(s(x),0()) -> true()
      gt(s(x),s(y)) -> gt(x,y)
      ge(x,0()) -> true()
      ge(0(),s(x)) -> false()
      ge(s(x),s(y)) -> ge(x,y)
     Matrix Interpretation Processor: dim=1
      
      interpretation:
       [ge#](x0, x1) = x0 + x1 + 3,
       
       [if2](x0, x1, x2) = x1 + x2 + 1,
       
       [if1](x0, x1, x2) = x1 + x2 + 1,
       
       [ge](x0, x1) = 2x0 + 1,
       
       [gcd](x0, x1) = x0 + x1 + 1,
       
       [0] = 2,
       
       [false] = 0,
       
       [true] = 0,
       
       [if](x0, x1, x2) = 2x1 + 5/2,
       
       [gt](x0, x1) = 3x0 + 3x1 + 1,
       
       [minus](x0, x1) = x0,
       
       [s](x0) = 2x0 + 5/2
      orientation:
       ge#(s(x),s(y)) = 2x + 2y + 8 >= x + y + 3 = ge#(x,y)
       
       minus(s(x),y) = 2x + 5/2 >= 2x + 5/2 = if(gt(s(x),y),x,y)
       
       if(true(),x,y) = 2x + 5/2 >= 2x + 5/2 = s(minus(x,y))
       
       if(false(),x,y) = 2x + 5/2 >= 2 = 0()
       
       gcd(x,y) = x + y + 1 >= x + y + 1 = if1(ge(x,y),x,y)
       
       if1(true(),x,y) = x + y + 1 >= x + y + 1 = if2(gt(y,0()),x,y)
       
       if1(false(),x,y) = x + y + 1 >= x + y + 1 = gcd(y,x)
       
       if2(true(),x,y) = x + y + 1 >= x + y + 1 = gcd(minus(x,y),y)
       
       if2(false(),x,y) = x + y + 1 >= x = x
       
       gt(0(),y) = 3y + 7 >= 0 = false()
       
       gt(s(x),0()) = 6x + 29/2 >= 0 = true()
       
       gt(s(x),s(y)) = 6x + 6y + 16 >= 3x + 3y + 1 = gt(x,y)
       
       ge(x,0()) = 2x + 1 >= 0 = true()
       
       ge(0(),s(x)) = 5 >= 0 = false()
       
       ge(s(x),s(y)) = 4x + 6 >= 2x + 1 = ge(x,y)
      problem:
       DPs:
        
       TRS:
        minus(s(x),y) -> if(gt(s(x),y),x,y)
        if(true(),x,y) -> s(minus(x,y))
        if(false(),x,y) -> 0()
        gcd(x,y) -> if1(ge(x,y),x,y)
        if1(true(),x,y) -> if2(gt(y,0()),x,y)
        if1(false(),x,y) -> gcd(y,x)
        if2(true(),x,y) -> gcd(minus(x,y),y)
        if2(false(),x,y) -> x
        gt(0(),y) -> false()
        gt(s(x),0()) -> true()
        gt(s(x),s(y)) -> gt(x,y)
        ge(x,0()) -> true()
        ge(0(),s(x)) -> false()
        ge(s(x),s(y)) -> ge(x,y)
      Qed