MAYBE

Problem:
 active(f(X,X)) -> mark(f(a(),b()))
 active(b()) -> mark(a())
 active(f(X1,X2)) -> f(active(X1),X2)
 f(mark(X1),X2) -> mark(f(X1,X2))
 proper(f(X1,X2)) -> f(proper(X1),proper(X2))
 proper(a()) -> ok(a())
 proper(b()) -> ok(b())
 f(ok(X1),ok(X2)) -> ok(f(X1,X2))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(f(X,X)) -> f#(a(),b())
   active#(f(X1,X2)) -> active#(X1)
   active#(f(X1,X2)) -> f#(active(X1),X2)
   f#(mark(X1),X2) -> f#(X1,X2)
   proper#(f(X1,X2)) -> proper#(X2)
   proper#(f(X1,X2)) -> proper#(X1)
   proper#(f(X1,X2)) -> f#(proper(X1),proper(X2))
   f#(ok(X1),ok(X2)) -> f#(X1,X2)
   top#(mark(X)) -> proper#(X)
   top#(mark(X)) -> top#(proper(X))
   top#(ok(X)) -> active#(X)
   top#(ok(X)) -> top#(active(X))
  TRS:
   active(f(X,X)) -> mark(f(a(),b()))
   active(b()) -> mark(a())
   active(f(X1,X2)) -> f(active(X1),X2)
   f(mark(X1),X2) -> mark(f(X1,X2))
   proper(f(X1,X2)) -> f(proper(X1),proper(X2))
   proper(a()) -> ok(a())
   proper(b()) -> ok(b())
   f(ok(X1),ok(X2)) -> ok(f(X1,X2))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  EDG Processor:
   DPs:
    active#(f(X,X)) -> f#(a(),b())
    active#(f(X1,X2)) -> active#(X1)
    active#(f(X1,X2)) -> f#(active(X1),X2)
    f#(mark(X1),X2) -> f#(X1,X2)
    proper#(f(X1,X2)) -> proper#(X2)
    proper#(f(X1,X2)) -> proper#(X1)
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2))
    f#(ok(X1),ok(X2)) -> f#(X1,X2)
    top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X))
   TRS:
    active(f(X,X)) -> mark(f(a(),b()))
    active(b()) -> mark(a())
    active(f(X1,X2)) -> f(active(X1),X2)
    f(mark(X1),X2) -> mark(f(X1,X2))
    proper(f(X1,X2)) -> f(proper(X1),proper(X2))
    proper(a()) -> ok(a())
    proper(b()) -> ok(b())
    f(ok(X1),ok(X2)) -> ok(f(X1,X2))
    top(mark(X)) -> top(proper(X))
    top(ok(X)) -> top(active(X))
   graph:
    top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
    top#(ok(X)) -> top#(active(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
    top#(ok(X)) -> active#(X) -> active#(f(X,X)) -> f#(a(),b())
    top#(ok(X)) -> active#(X) -> active#(f(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(f(X1,X2)) -> f#(active(X1),X2)
    top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X))
    top#(mark(X)) -> proper#(X) -> proper#(f(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(f(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) ->
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2))
    proper#(f(X1,X2)) -> proper#(X2) ->
    proper#(f(X1,X2)) -> proper#(X2)
    proper#(f(X1,X2)) -> proper#(X2) ->
    proper#(f(X1,X2)) -> proper#(X1)
    proper#(f(X1,X2)) -> proper#(X2) ->
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2))
    proper#(f(X1,X2)) -> proper#(X1) ->
    proper#(f(X1,X2)) -> proper#(X2)
    proper#(f(X1,X2)) -> proper#(X1) ->
    proper#(f(X1,X2)) -> proper#(X1)
    proper#(f(X1,X2)) -> proper#(X1) ->
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2))
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2)) ->
    f#(mark(X1),X2) -> f#(X1,X2)
    proper#(f(X1,X2)) -> f#(proper(X1),proper(X2)) ->
    f#(ok(X1),ok(X2)) -> f#(X1,X2)
    f#(ok(X1),ok(X2)) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2)
    f#(ok(X1),ok(X2)) -> f#(X1,X2) -> f#(ok(X1),ok(X2)) -> f#(X1,X2)
    f#(mark(X1),X2) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2)
    f#(mark(X1),X2) -> f#(X1,X2) ->
    f#(ok(X1),ok(X2)) -> f#(X1,X2)
    active#(f(X1,X2)) -> f#(active(X1),X2) ->
    f#(mark(X1),X2) -> f#(X1,X2)
    active#(f(X1,X2)) -> f#(active(X1),X2) ->
    f#(ok(X1),ok(X2)) -> f#(X1,X2)
    active#(f(X1,X2)) -> active#(X1) ->
    active#(f(X,X)) -> f#(a(),b())
    active#(f(X1,X2)) -> active#(X1) ->
    active#(f(X1,X2)) -> active#(X1)
    active#(f(X1,X2)) -> active#(X1) -> active#(f(X1,X2)) -> f#(active(X1),X2)
   SCC Processor:
    #sccs: 4
    #rules: 7
    #arcs: 31/144
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(f(X,X)) -> mark(f(a(),b()))
     active(b()) -> mark(a())
     active(f(X1,X2)) -> f(active(X1),X2)
     f(mark(X1),X2) -> mark(f(X1,X2))
     proper(f(X1,X2)) -> f(proper(X1),proper(X2))
     proper(a()) -> ok(a())
     proper(b()) -> ok(b())
     f(ok(X1),ok(X2)) -> ok(f(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     proper#(f(X1,X2)) -> proper#(X1)
     proper#(f(X1,X2)) -> proper#(X2)
    TRS:
     active(f(X,X)) -> mark(f(a(),b()))
     active(b()) -> mark(a())
     active(f(X1,X2)) -> f(active(X1),X2)
     f(mark(X1),X2) -> mark(f(X1,X2))
     proper(f(X1,X2)) -> f(proper(X1),proper(X2))
     proper(a()) -> ok(a())
     proper(b()) -> ok(b())
     f(ok(X1),ok(X2)) -> ok(f(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [proper#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [mark](x0) = 0,
      
      [b] = 0,
      
      [a] = 1,
      
      [active](x0) = x0 + 1,
      
      [f](x0, x1) = x0 + x1 + 1
     orientation:
      proper#(f(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
      
      proper#(f(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
      
      active(f(X,X)) = 2X + 2 >= 0 = mark(f(a(),b()))
      
      active(b()) = 1 >= 0 = mark(a())
      
      active(f(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = f(active(X1),X2)
      
      f(mark(X1),X2) = X2 + 1 >= 0 = mark(f(X1,X2))
      
      proper(f(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = f(proper(X1),proper(X2))
      
      proper(a()) = 1 >= 1 = ok(a())
      
      proper(b()) = 0 >= 0 = ok(b())
      
      f(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(f(X1,X2))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       
      TRS:
       active(f(X,X)) -> mark(f(a(),b()))
       active(b()) -> mark(a())
       active(f(X1,X2)) -> f(active(X1),X2)
       f(mark(X1),X2) -> mark(f(X1,X2))
       proper(f(X1,X2)) -> f(proper(X1),proper(X2))
       proper(a()) -> ok(a())
       proper(b()) -> ok(b())
       f(ok(X1),ok(X2)) -> ok(f(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     active#(f(X1,X2)) -> active#(X1)
    TRS:
     active(f(X,X)) -> mark(f(a(),b()))
     active(b()) -> mark(a())
     active(f(X1,X2)) -> f(active(X1),X2)
     f(mark(X1),X2) -> mark(f(X1,X2))
     proper(f(X1,X2)) -> f(proper(X1),proper(X2))
     proper(a()) -> ok(a())
     proper(b()) -> ok(b())
     f(ok(X1),ok(X2)) -> ok(f(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [active#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0 + 1,
      
      [mark](x0) = x0 + 1,
      
      [b] = 0,
      
      [a] = 0,
      
      [active](x0) = x0 + 1,
      
      [f](x0, x1) = x0 + 1
     orientation:
      active#(f(X1,X2)) = X1 + 2 >= X1 + 1 = active#(X1)
      
      active(f(X,X)) = X + 2 >= 2 = mark(f(a(),b()))
      
      active(b()) = 1 >= 1 = mark(a())
      
      active(f(X1,X2)) = X1 + 2 >= X1 + 2 = f(active(X1),X2)
      
      f(mark(X1),X2) = X1 + 2 >= X1 + 2 = mark(f(X1,X2))
      
      proper(f(X1,X2)) = X1 + 2 >= X1 + 2 = f(proper(X1),proper(X2))
      
      proper(a()) = 1 >= 0 = ok(a())
      
      proper(b()) = 1 >= 0 = ok(b())
      
      f(ok(X1),ok(X2)) = X1 + 1 >= X1 + 1 = ok(f(X1,X2))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       
      TRS:
       active(f(X,X)) -> mark(f(a(),b()))
       active(b()) -> mark(a())
       active(f(X1,X2)) -> f(active(X1),X2)
       f(mark(X1),X2) -> mark(f(X1,X2))
       proper(f(X1,X2)) -> f(proper(X1),proper(X2))
       proper(a()) -> ok(a())
       proper(b()) -> ok(b())
       f(ok(X1),ok(X2)) -> ok(f(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     f#(ok(X1),ok(X2)) -> f#(X1,X2)
     f#(mark(X1),X2) -> f#(X1,X2)
    TRS:
     active(f(X,X)) -> mark(f(a(),b()))
     active(b()) -> mark(a())
     active(f(X1,X2)) -> f(active(X1),X2)
     f(mark(X1),X2) -> mark(f(X1,X2))
     proper(f(X1,X2)) -> f(proper(X1),proper(X2))
     proper(a()) -> ok(a())
     proper(b()) -> ok(b())
     f(ok(X1),ok(X2)) -> ok(f(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [f#](x0, x1) = x0 + x1,
      
      [top](x0) = 1,
      
      [ok](x0) = x0 + 1,
      
      [proper](x0) = 1,
      
      [mark](x0) = x0,
      
      [b] = 0,
      
      [a] = 0,
      
      [active](x0) = 0,
      
      [f](x0, x1) = x0
     orientation:
      f#(ok(X1),ok(X2)) = X1 + X2 + 2 >= X1 + X2 = f#(X1,X2)
      
      f#(mark(X1),X2) = X1 + X2 >= X1 + X2 = f#(X1,X2)
      
      active(f(X,X)) = 0 >= 0 = mark(f(a(),b()))
      
      active(b()) = 0 >= 0 = mark(a())
      
      active(f(X1,X2)) = 0 >= 0 = f(active(X1),X2)
      
      f(mark(X1),X2) = X1 >= X1 = mark(f(X1,X2))
      
      proper(f(X1,X2)) = 1 >= 1 = f(proper(X1),proper(X2))
      
      proper(a()) = 1 >= 1 = ok(a())
      
      proper(b()) = 1 >= 1 = ok(b())
      
      f(ok(X1),ok(X2)) = X1 + 1 >= X1 + 1 = ok(f(X1,X2))
      
      top(mark(X)) = 1 >= 1 = top(proper(X))
      
      top(ok(X)) = 1 >= 1 = top(active(X))
     problem:
      DPs:
       f#(mark(X1),X2) -> f#(X1,X2)
      TRS:
       active(f(X,X)) -> mark(f(a(),b()))
       active(b()) -> mark(a())
       active(f(X1,X2)) -> f(active(X1),X2)
       f(mark(X1),X2) -> mark(f(X1,X2))
       proper(f(X1,X2)) -> f(proper(X1),proper(X2))
       proper(a()) -> ok(a())
       proper(b()) -> ok(b())
       f(ok(X1),ok(X2)) -> ok(f(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [f#](x0, x1) = x0,
       
       [top](x0) = 0,
       
       [ok](x0) = 0,
       
       [proper](x0) = 0,
       
       [mark](x0) = x0 + 1,
       
       [b] = 0,
       
       [a] = 0,
       
       [active](x0) = 1,
       
       [f](x0, x1) = x0
      orientation:
       f#(mark(X1),X2) = X1 + 1 >= X1 = f#(X1,X2)
       
       active(f(X,X)) = 1 >= 1 = mark(f(a(),b()))
       
       active(b()) = 1 >= 1 = mark(a())
       
       active(f(X1,X2)) = 1 >= 1 = f(active(X1),X2)
       
       f(mark(X1),X2) = X1 + 1 >= X1 + 1 = mark(f(X1,X2))
       
       proper(f(X1,X2)) = 0 >= 0 = f(proper(X1),proper(X2))
       
       proper(a()) = 0 >= 0 = ok(a())
       
       proper(b()) = 0 >= 0 = ok(b())
       
       f(ok(X1),ok(X2)) = 0 >= 0 = ok(f(X1,X2))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(f(X,X)) -> mark(f(a(),b()))
        active(b()) -> mark(a())
        active(f(X1,X2)) -> f(active(X1),X2)
        f(mark(X1),X2) -> mark(f(X1,X2))
        proper(f(X1,X2)) -> f(proper(X1),proper(X2))
        proper(a()) -> ok(a())
        proper(b()) -> ok(b())
        f(ok(X1),ok(X2)) -> ok(f(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed