MAYBE

Problem:
 f(0()) -> true()
 f(1()) -> false()
 f(s(x)) -> f(x)
 if(true(),x,y) -> x
 if(false(),x,y) -> y
 g(s(x),s(y)) -> if(f(x),s(x),s(y))
 g(x,c(y)) -> g(x,g(s(c(y)),y))

Proof:
 DP Processor:
  DPs:
   f#(s(x)) -> f#(x)
   g#(s(x),s(y)) -> f#(x)
   g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
   g#(x,c(y)) -> g#(s(c(y)),y)
   g#(x,c(y)) -> g#(x,g(s(c(y)),y))
  TRS:
   f(0()) -> true()
   f(1()) -> false()
   f(s(x)) -> f(x)
   if(true(),x,y) -> x
   if(false(),x,y) -> y
   g(s(x),s(y)) -> if(f(x),s(x),s(y))
   g(x,c(y)) -> g(x,g(s(c(y)),y))
  TDG Processor:
   DPs:
    f#(s(x)) -> f#(x)
    g#(s(x),s(y)) -> f#(x)
    g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
    g#(x,c(y)) -> g#(s(c(y)),y)
    g#(x,c(y)) -> g#(x,g(s(c(y)),y))
   TRS:
    f(0()) -> true()
    f(1()) -> false()
    f(s(x)) -> f(x)
    if(true(),x,y) -> x
    if(false(),x,y) -> y
    g(s(x),s(y)) -> if(f(x),s(x),s(y))
    g(x,c(y)) -> g(x,g(s(c(y)),y))
   graph:
    g#(s(x),s(y)) -> f#(x) -> f#(s(x)) -> f#(x)
    g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(x,g(s(c(y)),y))
    g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(s(c(y)),y)
    g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
    g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> f#(x)
    g#(x,c(y)) -> g#(x,g(s(c(y)),y)) ->
    g#(x,c(y)) -> g#(x,g(s(c(y)),y))
    g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(x,c(y)) -> g#(s(c(y)),y)
    g#(x,c(y)) -> g#(x,g(s(c(y)),y)) ->
    g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
    g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(s(x),s(y)) -> f#(x)
    f#(s(x)) -> f#(x) -> f#(s(x)) -> f#(x)
   EDG Processor:
    DPs:
     f#(s(x)) -> f#(x)
     g#(s(x),s(y)) -> f#(x)
     g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
     g#(x,c(y)) -> g#(s(c(y)),y)
     g#(x,c(y)) -> g#(x,g(s(c(y)),y))
    TRS:
     f(0()) -> true()
     f(1()) -> false()
     f(s(x)) -> f(x)
     if(true(),x,y) -> x
     if(false(),x,y) -> y
     g(s(x),s(y)) -> if(f(x),s(x),s(y))
     g(x,c(y)) -> g(x,g(s(c(y)),y))
    graph:
     g#(s(x),s(y)) -> f#(x) -> f#(s(x)) -> f#(x)
     g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> f#(x)
     g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
     g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(s(c(y)),y)
     g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(x,g(s(c(y)),y))
     f#(s(x)) -> f#(x) -> f#(s(x)) -> f#(x)
    Restore Modifier:
     DPs:
      f#(s(x)) -> f#(x)
      g#(s(x),s(y)) -> f#(x)
      g#(s(x),s(y)) -> if#(f(x),s(x),s(y))
      g#(x,c(y)) -> g#(s(c(y)),y)
      g#(x,c(y)) -> g#(x,g(s(c(y)),y))
     TRS:
      f(0()) -> true()
      f(1()) -> false()
      f(s(x)) -> f(x)
      if(true(),x,y) -> x
      if(false(),x,y) -> y
      g(s(x),s(y)) -> if(f(x),s(x),s(y))
      g(x,c(y)) -> g(x,g(s(c(y)),y))
     SCC Processor:
      #sccs: 2
      #rules: 2
      #arcs: 6/25
      DPs:
       g#(x,c(y)) -> g#(s(c(y)),y)
      TRS:
       f(0()) -> true()
       f(1()) -> false()
       f(s(x)) -> f(x)
       if(true(),x,y) -> x
       if(false(),x,y) -> y
       g(s(x),s(y)) -> if(f(x),s(x),s(y))
       g(x,c(y)) -> g(x,g(s(c(y)),y))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [g#](x0, x1) = x1,
        
        [c](x0) = x0 + 1,
        
        [g](x0, x1) = 0,
        
        [if](x0, x1, x2) = x1 + x2,
        
        [s](x0) = 0,
        
        [false] = 0,
        
        [1] = 0,
        
        [true] = 0,
        
        [f](x0) = 0,
        
        [0] = 0
       orientation:
        g#(x,c(y)) = y + 1 >= y = g#(s(c(y)),y)
        
        f(0()) = 0 >= 0 = true()
        
        f(1()) = 0 >= 0 = false()
        
        f(s(x)) = 0 >= 0 = f(x)
        
        if(true(),x,y) = x + y >= x = x
        
        if(false(),x,y) = x + y >= y = y
        
        g(s(x),s(y)) = 0 >= 0 = if(f(x),s(x),s(y))
        
        g(x,c(y)) = 0 >= 0 = g(x,g(s(c(y)),y))
       problem:
        DPs:
         
        TRS:
         f(0()) -> true()
         f(1()) -> false()
         f(s(x)) -> f(x)
         if(true(),x,y) -> x
         if(false(),x,y) -> y
         g(s(x),s(y)) -> if(f(x),s(x),s(y))
         g(x,c(y)) -> g(x,g(s(c(y)),y))
       Qed
      
      DPs:
       f#(s(x)) -> f#(x)
      TRS:
       f(0()) -> true()
       f(1()) -> false()
       f(s(x)) -> f(x)
       if(true(),x,y) -> x
       if(false(),x,y) -> y
       g(s(x),s(y)) -> if(f(x),s(x),s(y))
       g(x,c(y)) -> g(x,g(s(c(y)),y))
      Open