We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict Trs:
  { active(g(X)) -> mark(h(X))
  , active(h(d())) -> mark(g(c()))
  , active(c()) -> mark(d())
  , g(ok(X)) -> ok(g(X))
  , h(ok(X)) -> ok(h(X))
  , proper(g(X)) -> g(proper(X))
  , proper(h(X)) -> h(proper(X))
  , proper(c()) -> ok(c())
  , proper(d()) -> ok(d())
  , top(mark(X)) -> top(proper(X))
  , top(ok(X)) -> top(active(X)) }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

We add the following weak dependency pairs:

Strict DPs:
  { active^#(g(X)) -> c_1(h^#(X))
  , active^#(h(d())) -> c_2(g^#(c()))
  , active^#(c()) -> c_3()
  , h^#(ok(X)) -> c_5(h^#(X))
  , g^#(ok(X)) -> c_4(g^#(X))
  , proper^#(g(X)) -> c_6(g^#(proper(X)))
  , proper^#(h(X)) -> c_7(h^#(proper(X)))
  , proper^#(c()) -> c_8()
  , proper^#(d()) -> c_9()
  , top^#(mark(X)) -> c_10(top^#(proper(X)))
  , top^#(ok(X)) -> c_11(top^#(active(X))) }

and mark the set of starting terms.

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict DPs:
  { active^#(g(X)) -> c_1(h^#(X))
  , active^#(h(d())) -> c_2(g^#(c()))
  , active^#(c()) -> c_3()
  , h^#(ok(X)) -> c_5(h^#(X))
  , g^#(ok(X)) -> c_4(g^#(X))
  , proper^#(g(X)) -> c_6(g^#(proper(X)))
  , proper^#(h(X)) -> c_7(h^#(proper(X)))
  , proper^#(c()) -> c_8()
  , proper^#(d()) -> c_9()
  , top^#(mark(X)) -> c_10(top^#(proper(X)))
  , top^#(ok(X)) -> c_11(top^#(active(X))) }
Strict Trs:
  { active(g(X)) -> mark(h(X))
  , active(h(d())) -> mark(g(c()))
  , active(c()) -> mark(d())
  , g(ok(X)) -> ok(g(X))
  , h(ok(X)) -> ok(h(X))
  , proper(g(X)) -> g(proper(X))
  , proper(h(X)) -> h(proper(X))
  , proper(c()) -> ok(c())
  , proper(d()) -> ok(d())
  , top(mark(X)) -> top(proper(X))
  , top(ok(X)) -> top(active(X)) }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

We replace rewrite rules by usable rules:

  Strict Usable Rules:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict DPs:
  { active^#(g(X)) -> c_1(h^#(X))
  , active^#(h(d())) -> c_2(g^#(c()))
  , active^#(c()) -> c_3()
  , h^#(ok(X)) -> c_5(h^#(X))
  , g^#(ok(X)) -> c_4(g^#(X))
  , proper^#(g(X)) -> c_6(g^#(proper(X)))
  , proper^#(h(X)) -> c_7(h^#(proper(X)))
  , proper^#(c()) -> c_8()
  , proper^#(d()) -> c_9()
  , top^#(mark(X)) -> c_10(top^#(proper(X)))
  , top^#(ok(X)) -> c_11(top^#(active(X))) }
Strict Trs:
  { active(g(X)) -> mark(h(X))
  , active(h(d())) -> mark(g(c()))
  , active(c()) -> mark(d())
  , g(ok(X)) -> ok(g(X))
  , h(ok(X)) -> ok(h(X))
  , proper(g(X)) -> g(proper(X))
  , proper(h(X)) -> h(proper(X))
  , proper(c()) -> ok(c())
  , proper(d()) -> ok(d()) }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

Consider the dependency graph:

  1: active^#(g(X)) -> c_1(h^#(X)) -->_1 h^#(ok(X)) -> c_5(h^#(X)) :4
  
  2: active^#(h(d())) -> c_2(g^#(c()))
  
  3: active^#(c()) -> c_3()
  
  4: h^#(ok(X)) -> c_5(h^#(X)) -->_1 h^#(ok(X)) -> c_5(h^#(X)) :4
  
  5: g^#(ok(X)) -> c_4(g^#(X)) -->_1 g^#(ok(X)) -> c_4(g^#(X)) :5
  
  6: proper^#(g(X)) -> c_6(g^#(proper(X)))
     -->_1 g^#(ok(X)) -> c_4(g^#(X)) :5
  
  7: proper^#(h(X)) -> c_7(h^#(proper(X)))
     -->_1 h^#(ok(X)) -> c_5(h^#(X)) :4
  
  8: proper^#(c()) -> c_8()
  
  9: proper^#(d()) -> c_9()
  
  10: top^#(mark(X)) -> c_10(top^#(proper(X)))
     -->_1 top^#(ok(X)) -> c_11(top^#(active(X))) :11
     -->_1 top^#(mark(X)) -> c_10(top^#(proper(X))) :10
  
  11: top^#(ok(X)) -> c_11(top^#(active(X)))
     -->_1 top^#(ok(X)) -> c_11(top^#(active(X))) :11
     -->_1 top^#(mark(X)) -> c_10(top^#(proper(X))) :10
  

Only the nodes {3,4,5,8,9,10,11} are reachable from nodes
{3,4,5,8,9,10,11} that start derivation from marked basic terms.
The nodes not reachable are removed from the problem.

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict DPs:
  { active^#(c()) -> c_3()
  , h^#(ok(X)) -> c_5(h^#(X))
  , g^#(ok(X)) -> c_4(g^#(X))
  , proper^#(c()) -> c_8()
  , proper^#(d()) -> c_9()
  , top^#(mark(X)) -> c_10(top^#(proper(X)))
  , top^#(ok(X)) -> c_11(top^#(active(X))) }
Strict Trs:
  { active(g(X)) -> mark(h(X))
  , active(h(d())) -> mark(g(c()))
  , active(c()) -> mark(d())
  , g(ok(X)) -> ok(g(X))
  , h(ok(X)) -> ok(h(X))
  , proper(g(X)) -> g(proper(X))
  , proper(h(X)) -> h(proper(X))
  , proper(c()) -> ok(c())
  , proper(d()) -> ok(d()) }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

We estimate the number of application of {1,4,5} by applications of
Pre({1,4,5}) = {}. Here rules are labeled as follows:

  DPs:
    { 1: active^#(c()) -> c_3()
    , 2: h^#(ok(X)) -> c_5(h^#(X))
    , 3: g^#(ok(X)) -> c_4(g^#(X))
    , 4: proper^#(c()) -> c_8()
    , 5: proper^#(d()) -> c_9()
    , 6: top^#(mark(X)) -> c_10(top^#(proper(X)))
    , 7: top^#(ok(X)) -> c_11(top^#(active(X))) }

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict DPs:
  { h^#(ok(X)) -> c_5(h^#(X))
  , g^#(ok(X)) -> c_4(g^#(X))
  , top^#(mark(X)) -> c_10(top^#(proper(X)))
  , top^#(ok(X)) -> c_11(top^#(active(X))) }
Strict Trs:
  { active(g(X)) -> mark(h(X))
  , active(h(d())) -> mark(g(c()))
  , active(c()) -> mark(d())
  , g(ok(X)) -> ok(g(X))
  , h(ok(X)) -> ok(h(X))
  , proper(g(X)) -> g(proper(X))
  , proper(h(X)) -> h(proper(X))
  , proper(c()) -> ok(c())
  , proper(d()) -> ok(d()) }
Weak DPs:
  { active^#(c()) -> c_3()
  , proper^#(c()) -> c_8()
  , proper^#(d()) -> c_9() }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

We employ 'linear path analysis' using the following approximated
dependency graph:
->{1}                                        [  YES(O(1),O(n^1))  ]

->{2}                                        [  YES(O(1),O(n^1))  ]

->{3,4}                                      [  YES(O(1),O(n^1))  ]

->{5}                                        [   YES(O(1),O(1))   ]

->{6}                                        [   YES(O(1),O(1))   ]

->{7}                                        [   YES(O(1),O(1))   ]


Here dependency-pairs are as follows:

Strict DPs:
  { 1: h^#(ok(X)) -> c_5(h^#(X))
  , 2: g^#(ok(X)) -> c_4(g^#(X))
  , 3: top^#(mark(X)) -> c_10(top^#(proper(X)))
  , 4: top^#(ok(X)) -> c_11(top^#(active(X))) }
Weak DPs:
  { 5: active^#(c()) -> c_3()
  , 6: proper^#(c()) -> c_8()
  , 7: proper^#(d()) -> c_9() }

* Path {1}: YES(O(1),O(n^1))
  --------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { h^#(ok(X)) -> c_5(h^#(X)) }
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  No rule is usable, rules are removed from the input problem.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { h^#(ok(X)) -> c_5(h^#(X)) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 1' to
  orient following rules strictly.
  
  DPs:
    { 1: h^#(ok(X)) -> c_5(h^#(X)) }
  
  Sub-proof:
  ----------
    The following argument positions are usable:
      Uargs(c_5) = {1}
    
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA).
    
       [ok](x1) = [1] x1 + [2]
                              
      [h^#](x1) = [4] x1 + [0]
                              
      [c_5](x1) = [1] x1 + [1]
    
    The order satisfies the following ordering constraints:
    
      [h^#(ok(X))] = [4] X + [8]  
                   > [4] X + [1]  
                   = [c_5(h^#(X))]
                                  
  
  The strictly oriented rules are moved into the weak component.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs: { h^#(ok(X)) -> c_5(h^#(X)) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  The following weak DPs constitute a sub-graph of the DG that is
  closed under successors. The DPs are removed.
  
  { h^#(ok(X)) -> c_5(h^#(X)) }
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Rules: Empty
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

* Path {2}: YES(O(1),O(n^1))
  --------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { g^#(ok(X)) -> c_4(g^#(X)) }
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  No rule is usable, rules are removed from the input problem.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { g^#(ok(X)) -> c_4(g^#(X)) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 1' to
  orient following rules strictly.
  
  DPs:
    { 1: g^#(ok(X)) -> c_4(g^#(X)) }
  
  Sub-proof:
  ----------
    The following argument positions are usable:
      Uargs(c_4) = {1}
    
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA).
    
       [ok](x1) = [1] x1 + [2]
                              
      [g^#](x1) = [4] x1 + [0]
                              
      [c_4](x1) = [1] x1 + [1]
    
    The order satisfies the following ordering constraints:
    
      [g^#(ok(X))] = [4] X + [8]  
                   > [4] X + [1]  
                   = [c_4(g^#(X))]
                                  
  
  The strictly oriented rules are moved into the weak component.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs: { g^#(ok(X)) -> c_4(g^#(X)) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  The following weak DPs constitute a sub-graph of the DG that is
  closed under successors. The DPs are removed.
  
  { g^#(ok(X)) -> c_4(g^#(X)) }
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Rules: Empty
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

* Path {3,4}: YES(O(1),O(n^1))
  ----------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  The weightgap principle applies (using the following nonconstant
  growth matrix-interpretation)
  
  TcT has computed the following matrix interpretation satisfying
  not(EDA) and not(IDA(1)).
  
    [active](x1) = [1] x1 + [1]
                               
         [g](x1) = [1] x1 + [0]
                               
      [mark](x1) = [1] x1 + [0]
                               
         [h](x1) = [1] x1 + [0]
                               
             [c] = [0]         
                               
             [d] = [0]         
                               
    [proper](x1) = [1] x1 + [0]
                               
        [ok](x1) = [1] x1 + [0]
                               
     [top^#](x1) = [1] x1 + [0]
                               
      [c_10](x1) = [1] x1 + [0]
                               
      [c_11](x1) = [1] x1 + [0]
  
  The order satisfies the following ordering constraints:
  
      [active(g(X))] =  [1] X + [1]             
                     >  [1] X + [0]             
                     =  [mark(h(X))]            
                                                
    [active(h(d()))] =  [1]                     
                     >  [0]                     
                     =  [mark(g(c()))]          
                                                
       [active(c())] =  [1]                     
                     >  [0]                     
                     =  [mark(d())]             
                                                
          [g(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(g(X))]              
                                                
          [h(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(h(X))]              
                                                
      [proper(g(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [g(proper(X))]          
                                                
      [proper(h(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [h(proper(X))]          
                                                
       [proper(c())] =  [0]                     
                     >= [0]                     
                     =  [ok(c())]               
                                                
       [proper(d())] =  [0]                     
                     >= [0]                     
                     =  [ok(d())]               
                                                
    [top^#(mark(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [c_10(top^#(proper(X)))]
                                                
      [top^#(ok(X))] =  [1] X + [0]             
                     ?  [1] X + [1]             
                     =  [c_11(top^#(active(X)))]
                                                
  
  Further, it can be verified that all rules not oriented are covered by the weightgap condition.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  The weightgap principle applies (using the following nonconstant
  growth matrix-interpretation)
  
  TcT has computed the following matrix interpretation satisfying
  not(EDA) and not(IDA(1)).
  
    [active](x1) = [1] x1 + [5]
                               
         [g](x1) = [1] x1 + [0]
                               
      [mark](x1) = [1] x1 + [1]
                               
         [h](x1) = [1] x1 + [0]
                               
             [c] = [0]         
                               
             [d] = [1]         
                               
    [proper](x1) = [1] x1 + [0]
                               
        [ok](x1) = [1] x1 + [0]
                               
     [top^#](x1) = [1] x1 + [3]
                               
      [c_10](x1) = [1] x1 + [0]
                               
      [c_11](x1) = [1] x1 + [0]
  
  The order satisfies the following ordering constraints:
  
      [active(g(X))] =  [1] X + [5]             
                     >  [1] X + [1]             
                     =  [mark(h(X))]            
                                                
    [active(h(d()))] =  [6]                     
                     >  [1]                     
                     =  [mark(g(c()))]          
                                                
       [active(c())] =  [5]                     
                     >  [2]                     
                     =  [mark(d())]             
                                                
          [g(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(g(X))]              
                                                
          [h(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(h(X))]              
                                                
      [proper(g(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [g(proper(X))]          
                                                
      [proper(h(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [h(proper(X))]          
                                                
       [proper(c())] =  [0]                     
                     >= [0]                     
                     =  [ok(c())]               
                                                
       [proper(d())] =  [1]                     
                     >= [1]                     
                     =  [ok(d())]               
                                                
    [top^#(mark(X))] =  [1] X + [4]             
                     >  [1] X + [3]             
                     =  [c_10(top^#(proper(X)))]
                                                
      [top^#(ok(X))] =  [1] X + [3]             
                     ?  [1] X + [8]             
                     =  [c_11(top^#(active(X)))]
                                                
  
  Further, it can be verified that all rules not oriented are covered by the weightgap condition.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { top^#(ok(X)) -> c_11(top^#(active(X))) }
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Weak DPs: { top^#(mark(X)) -> c_10(top^#(proper(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  The weightgap principle applies (using the following nonconstant
  growth matrix-interpretation)
  
  TcT has computed the following matrix interpretation satisfying
  not(EDA) and not(IDA(1)).
  
    [active](x1) = [1] x1 + [4]
                               
         [g](x1) = [1] x1 + [0]
                               
      [mark](x1) = [1] x1 + [1]
                               
         [h](x1) = [1] x1 + [0]
                               
             [c] = [0]         
                               
             [d] = [0]         
                               
    [proper](x1) = [1] x1 + [1]
                               
        [ok](x1) = [1] x1 + [0]
                               
     [top^#](x1) = [1] x1 + [4]
                               
      [c_10](x1) = [1] x1 + [0]
                               
      [c_11](x1) = [1] x1 + [0]
  
  The order satisfies the following ordering constraints:
  
      [active(g(X))] =  [1] X + [4]             
                     >  [1] X + [1]             
                     =  [mark(h(X))]            
                                                
    [active(h(d()))] =  [4]                     
                     >  [1]                     
                     =  [mark(g(c()))]          
                                                
       [active(c())] =  [4]                     
                     >  [1]                     
                     =  [mark(d())]             
                                                
          [g(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(g(X))]              
                                                
          [h(ok(X))] =  [1] X + [0]             
                     >= [1] X + [0]             
                     =  [ok(h(X))]              
                                                
      [proper(g(X))] =  [1] X + [1]             
                     >= [1] X + [1]             
                     =  [g(proper(X))]          
                                                
      [proper(h(X))] =  [1] X + [1]             
                     >= [1] X + [1]             
                     =  [h(proper(X))]          
                                                
       [proper(c())] =  [1]                     
                     >  [0]                     
                     =  [ok(c())]               
                                                
       [proper(d())] =  [1]                     
                     >  [0]                     
                     =  [ok(d())]               
                                                
    [top^#(mark(X))] =  [1] X + [5]             
                     >= [1] X + [5]             
                     =  [c_10(top^#(proper(X)))]
                                                
      [top^#(ok(X))] =  [1] X + [4]             
                     ?  [1] X + [8]             
                     =  [c_11(top^#(active(X)))]
                                                
  
  Further, it can be verified that all rules not oriented are covered by the weightgap condition.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs: { top^#(ok(X)) -> c_11(top^#(active(X))) }
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X)) }
  Weak DPs: { top^#(mark(X)) -> c_10(top^#(proper(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  The weightgap principle applies (using the following nonconstant
  growth matrix-interpretation)
  
  TcT has computed the following matrix interpretation satisfying
  not(EDA) and not(IDA(1)).
  
    [active](x1) = [1 7] x1 + [0]
                   [0 0]      [1]
                                 
         [g](x1) = [1 0] x1 + [0]
                   [0 1]      [2]
                                 
      [mark](x1) = [1 4] x1 + [2]
                   [0 0]      [1]
                                 
         [h](x1) = [1 7] x1 + [1]
                   [0 0]      [2]
                                 
             [c] = [3]           
                   [0]           
                                 
             [d] = [0]           
                   [0]           
                                 
    [proper](x1) = [1 0] x1 + [0]
                   [0 1]      [2]
                                 
        [ok](x1) = [1 7] x1 + [0]
                   [0 0]      [2]
                                 
     [top^#](x1) = [1 2] x1 + [7]
                   [0 0]      [0]
                                 
      [c_10](x1) = [1 0] x1 + [0]
                   [0 1]      [0]
                                 
      [c_11](x1) = [1 0] x1 + [0]
                   [0 1]      [0]
  
  The order satisfies the following ordering constraints:
  
      [active(g(X))] =  [1 7] X + [14]          
                        [0 0]     [1]           
                     >  [1 7] X + [11]          
                        [0 0]     [1]           
                     =  [mark(h(X))]            
                                                
    [active(h(d()))] =  [15]                    
                        [1]                     
                     >  [13]                    
                        [1]                     
                     =  [mark(g(c()))]          
                                                
       [active(c())] =  [3]                     
                        [1]                     
                     >  [2]                     
                        [1]                     
                     =  [mark(d())]             
                                                
          [g(ok(X))] =  [1 7] X + [0]           
                        [0 0]     [4]           
                     ?  [1 7] X + [14]          
                        [0 0]     [2]           
                     =  [ok(g(X))]              
                                                
          [h(ok(X))] =  [1 7] X + [15]          
                        [0 0]     [2]           
                     >= [1 7] X + [15]          
                        [0 0]     [2]           
                     =  [ok(h(X))]              
                                                
      [proper(g(X))] =  [1 0] X + [0]           
                        [0 1]     [4]           
                     >= [1 0] X + [0]           
                        [0 1]     [4]           
                     =  [g(proper(X))]          
                                                
      [proper(h(X))] =  [1 7] X + [1]           
                        [0 0]     [4]           
                     ?  [1 7] X + [15]          
                        [0 0]     [2]           
                     =  [h(proper(X))]          
                                                
       [proper(c())] =  [3]                     
                        [2]                     
                     >= [3]                     
                        [2]                     
                     =  [ok(c())]               
                                                
       [proper(d())] =  [0]                     
                        [2]                     
                     >= [0]                     
                        [2]                     
                     =  [ok(d())]               
                                                
    [top^#(mark(X))] =  [1 4] X + [11]          
                        [0 0]     [0]           
                     >= [1 2] X + [11]          
                        [0 0]     [0]           
                     =  [c_10(top^#(proper(X)))]
                                                
      [top^#(ok(X))] =  [1 7] X + [11]          
                        [0 0]     [0]           
                     >  [1 7] X + [9]           
                        [0 0]     [0]           
                     =  [c_11(top^#(active(X)))]
                                                
  
  Further, it can be verified that all rules not oriented are covered by the weightgap condition.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X)) }
  Weak DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 2' to
  orient following rules strictly.
  
  Trs: { proper(g(X)) -> g(proper(X)) }
  
  The induced complexity on above rules (modulo remaining rules) is
  YES(?,O(n^1)) . These rules are moved into the corresponding weak
  component(s).
  
  Sub-proof:
  ----------
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA) and not(IDA(1)).
    
      [active](x1) = [1 1] x1 + [4]
                     [0 0]      [2]
                                   
           [g](x1) = [1 7] x1 + [0]
                     [0 3]      [2]
                                   
        [mark](x1) = [1 3] x1 + [4]
                     [0 0]      [2]
                                   
           [h](x1) = [1 6] x1 + [2]
                     [0 1]      [0]
                                   
               [c] = [3]           
                     [0]           
                                   
               [d] = [0]           
                     [1]           
                                   
      [proper](x1) = [1 2] x1 + [6]
                     [0 1]      [0]
                                   
          [ok](x1) = [1 0] x1 + [6]
                     [0 1]      [0]
                                   
       [top^#](x1) = [1 1] x1 + [1]
                     [0 0]      [0]
                                   
        [c_10](x1) = [1 1] x1 + [0]
                     [0 0]      [0]
                                   
        [c_11](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
    
    The order satisfies the following ordering constraints:
    
        [active(g(X))] =  [1 10] X + [6]          
                          [0  0]     [2]          
                       >= [1 9] X + [6]           
                          [0 0]     [2]           
                       =  [mark(h(X))]            
                                                  
      [active(h(d()))] =  [13]                    
                          [2]                     
                       >= [13]                    
                          [2]                     
                       =  [mark(g(c()))]          
                                                  
         [active(c())] =  [7]                     
                          [2]                     
                       >= [7]                     
                          [2]                     
                       =  [mark(d())]             
                                                  
            [g(ok(X))] =  [1 7] X + [6]           
                          [0 3]     [2]           
                       >= [1 7] X + [6]           
                          [0 3]     [2]           
                       =  [ok(g(X))]              
                                                  
            [h(ok(X))] =  [1 6] X + [8]           
                          [0 1]     [0]           
                       >= [1 6] X + [8]           
                          [0 1]     [0]           
                       =  [ok(h(X))]              
                                                  
        [proper(g(X))] =  [1 13] X + [10]         
                          [0  3]     [2]          
                       >  [1 9] X + [6]           
                          [0 3]     [2]           
                       =  [g(proper(X))]          
                                                  
        [proper(h(X))] =  [1 8] X + [8]           
                          [0 1]     [0]           
                       >= [1 8] X + [8]           
                          [0 1]     [0]           
                       =  [h(proper(X))]          
                                                  
         [proper(c())] =  [9]                     
                          [0]                     
                       >= [9]                     
                          [0]                     
                       =  [ok(c())]               
                                                  
         [proper(d())] =  [8]                     
                          [1]                     
                       >  [6]                     
                          [1]                     
                       =  [ok(d())]               
                                                  
      [top^#(mark(X))] =  [1 3] X + [7]           
                          [0 0]     [0]           
                       >= [1 3] X + [7]           
                          [0 0]     [0]           
                       =  [c_10(top^#(proper(X)))]
                                                  
        [top^#(ok(X))] =  [1 1] X + [7]           
                          [0 0]     [0]           
                       >= [1 1] X + [7]           
                          [0 0]     [0]           
                       =  [c_11(top^#(active(X)))]
                                                  
  
  We return to the main proof.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(h(X)) -> h(proper(X)) }
  Weak DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , proper(g(X)) -> g(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 2' to
  orient following rules strictly.
  
  Trs: { proper(h(X)) -> h(proper(X)) }
  
  The induced complexity on above rules (modulo remaining rules) is
  YES(?,O(n^1)) . These rules are moved into the corresponding weak
  component(s).
  
  Sub-proof:
  ----------
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA) and not(IDA(1)).
    
      [active](x1) = [1 0] x1 + [6]
                     [0 0]      [1]
                                   
           [g](x1) = [1 7] x1 + [7]
                     [0 1]      [0]
                                   
        [mark](x1) = [1 1] x1 + [6]
                     [0 0]      [1]
                                   
           [h](x1) = [1 4] x1 + [1]
                     [0 2]      [6]
                                   
               [c] = [2]           
                     [0]           
                                   
               [d] = [0]           
                     [2]           
                                   
      [proper](x1) = [1 1] x1 + [6]
                     [0 1]      [0]
                                   
          [ok](x1) = [1 0] x1 + [6]
                     [0 1]      [0]
                                   
       [top^#](x1) = [1 0] x1 + [5]
                     [0 0]      [0]
                                   
        [c_10](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
                                   
        [c_11](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
    
    The order satisfies the following ordering constraints:
    
        [active(g(X))] =  [1 7] X + [13]          
                          [0 0]     [1]           
                       >= [1 6] X + [13]          
                          [0 0]     [1]           
                       =  [mark(h(X))]            
                                                  
      [active(h(d()))] =  [15]                    
                          [1]                     
                       >= [15]                    
                          [1]                     
                       =  [mark(g(c()))]          
                                                  
         [active(c())] =  [8]                     
                          [1]                     
                       >= [8]                     
                          [1]                     
                       =  [mark(d())]             
                                                  
            [g(ok(X))] =  [1 7] X + [13]          
                          [0 1]     [0]           
                       >= [1 7] X + [13]          
                          [0 1]     [0]           
                       =  [ok(g(X))]              
                                                  
            [h(ok(X))] =  [1 4] X + [7]           
                          [0 2]     [6]           
                       >= [1 4] X + [7]           
                          [0 2]     [6]           
                       =  [ok(h(X))]              
                                                  
        [proper(g(X))] =  [1 8] X + [13]          
                          [0 1]     [0]           
                       >= [1 8] X + [13]          
                          [0 1]     [0]           
                       =  [g(proper(X))]          
                                                  
        [proper(h(X))] =  [1 6] X + [13]          
                          [0 2]     [6]           
                       >  [1 5] X + [7]           
                          [0 2]     [6]           
                       =  [h(proper(X))]          
                                                  
         [proper(c())] =  [8]                     
                          [0]                     
                       >= [8]                     
                          [0]                     
                       =  [ok(c())]               
                                                  
         [proper(d())] =  [8]                     
                          [2]                     
                       >  [6]                     
                          [2]                     
                       =  [ok(d())]               
                                                  
      [top^#(mark(X))] =  [1 1] X + [11]          
                          [0 0]     [0]           
                       >= [1 1] X + [11]          
                          [0 0]     [0]           
                       =  [c_10(top^#(proper(X)))]
                                                  
        [top^#(ok(X))] =  [1 0] X + [11]          
                          [0 0]     [0]           
                       >= [1 0] X + [11]          
                          [0 0]     [0]           
                       =  [c_11(top^#(active(X)))]
                                                  
  
  We return to the main proof.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict Trs:
    { g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X)) }
  Weak DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 2' to
  orient following rules strictly.
  
  Trs: { g(ok(X)) -> ok(g(X)) }
  
  The induced complexity on above rules (modulo remaining rules) is
  YES(?,O(n^1)) . These rules are moved into the corresponding weak
  component(s).
  
  Sub-proof:
  ----------
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA) and not(IDA(1)).
    
      [active](x1) = [1 0] x1 + [2]
                     [0 0]      [0]
                                   
           [g](x1) = [2 7] x1 + [1]
                     [0 4]      [1]
                                   
        [mark](x1) = [1 2] x1 + [2]
                     [0 0]      [0]
                                   
           [h](x1) = [1 5] x1 + [1]
                     [0 1]      [0]
                                   
               [c] = [4]           
                     [0]           
                                   
               [d] = [0]           
                     [2]           
                                   
      [proper](x1) = [1 2] x1 + [2]
                     [0 1]      [0]
                                   
          [ok](x1) = [1 0] x1 + [2]
                     [0 1]      [0]
                                   
       [top^#](x1) = [1 0] x1 + [6]
                     [1 1]      [4]
                                   
        [c_10](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
                                   
        [c_11](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
    
    The order satisfies the following ordering constraints:
    
        [active(g(X))] =  [2 7] X + [3]           
                          [0 0]     [0]           
                       >= [1 7] X + [3]           
                          [0 0]     [0]           
                       =  [mark(h(X))]            
                                                  
      [active(h(d()))] =  [13]                    
                          [0]                     
                       >= [13]                    
                          [0]                     
                       =  [mark(g(c()))]          
                                                  
         [active(c())] =  [6]                     
                          [0]                     
                       >= [6]                     
                          [0]                     
                       =  [mark(d())]             
                                                  
            [g(ok(X))] =  [2 7] X + [5]           
                          [0 4]     [1]           
                       >  [2 7] X + [3]           
                          [0 4]     [1]           
                       =  [ok(g(X))]              
                                                  
            [h(ok(X))] =  [1 5] X + [3]           
                          [0 1]     [0]           
                       >= [1 5] X + [3]           
                          [0 1]     [0]           
                       =  [ok(h(X))]              
                                                  
        [proper(g(X))] =  [2 15] X + [5]          
                          [0  4]     [1]          
                       >= [2 11] X + [5]          
                          [0  4]     [1]          
                       =  [g(proper(X))]          
                                                  
        [proper(h(X))] =  [1 7] X + [3]           
                          [0 1]     [0]           
                       >= [1 7] X + [3]           
                          [0 1]     [0]           
                       =  [h(proper(X))]          
                                                  
         [proper(c())] =  [6]                     
                          [0]                     
                       >= [6]                     
                          [0]                     
                       =  [ok(c())]               
                                                  
         [proper(d())] =  [6]                     
                          [2]                     
                       >  [2]                     
                          [2]                     
                       =  [ok(d())]               
                                                  
      [top^#(mark(X))] =  [1 2] X + [8]           
                          [1 2]     [6]           
                       >= [1 2] X + [8]           
                          [0 0]     [0]           
                       =  [c_10(top^#(proper(X)))]
                                                  
        [top^#(ok(X))] =  [1 0] X + [8]           
                          [1 1]     [6]           
                       >= [1 0] X + [8]           
                          [0 0]     [0]           
                       =  [c_11(top^#(active(X)))]
                                                  
  
  We return to the main proof.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict Trs: { h(ok(X)) -> ok(h(X)) }
  Weak DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'matrix interpretation of dimension 2' to
  orient following rules strictly.
  
  Trs: { h(ok(X)) -> ok(h(X)) }
  
  The induced complexity on above rules (modulo remaining rules) is
  YES(?,O(n^1)) . These rules are moved into the corresponding weak
  component(s).
  
  Sub-proof:
  ----------
    TcT has computed the following constructor-based matrix
    interpretation satisfying not(EDA) and not(IDA(1)).
    
      [active](x1) = [1 1] x1 + [0]
                     [0 0]      [1]
                                   
           [g](x1) = [2 7] x1 + [0]
                     [0 4]      [2]
                                   
        [mark](x1) = [1 2] x1 + [0]
                     [0 0]      [1]
                                   
           [h](x1) = [2 5] x1 + [0]
                     [0 3]      [1]
                                   
               [c] = [4]           
                     [0]           
                                   
               [d] = [2]           
                     [1]           
                                   
      [proper](x1) = [1 1] x1 + [1]
                     [0 1]      [0]
                                   
          [ok](x1) = [1 0] x1 + [1]
                     [0 1]      [0]
                                   
       [top^#](x1) = [4 4] x1 + [3]
                     [1 0]      [4]
                                   
        [c_10](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
                                   
        [c_11](x1) = [1 0] x1 + [0]
                     [0 0]      [0]
    
    The order satisfies the following ordering constraints:
    
        [active(g(X))] =  [2 11] X + [2]          
                          [0  0]     [1]          
                       >= [2 11] X + [2]          
                          [0  0]     [1]          
                       =  [mark(h(X))]            
                                                  
      [active(h(d()))] =  [13]                    
                          [1]                     
                       >  [12]                    
                          [1]                     
                       =  [mark(g(c()))]          
                                                  
         [active(c())] =  [4]                     
                          [1]                     
                       >= [4]                     
                          [1]                     
                       =  [mark(d())]             
                                                  
            [g(ok(X))] =  [2 7] X + [2]           
                          [0 4]     [2]           
                       >  [2 7] X + [1]           
                          [0 4]     [2]           
                       =  [ok(g(X))]              
                                                  
            [h(ok(X))] =  [2 5] X + [2]           
                          [0 3]     [1]           
                       >  [2 5] X + [1]           
                          [0 3]     [1]           
                       =  [ok(h(X))]              
                                                  
        [proper(g(X))] =  [2 11] X + [3]          
                          [0  4]     [2]          
                       >  [2 9] X + [2]           
                          [0 4]     [2]           
                       =  [g(proper(X))]          
                                                  
        [proper(h(X))] =  [2 8] X + [2]           
                          [0 3]     [1]           
                       >= [2 7] X + [2]           
                          [0 3]     [1]           
                       =  [h(proper(X))]          
                                                  
         [proper(c())] =  [5]                     
                          [0]                     
                       >= [5]                     
                          [0]                     
                       =  [ok(c())]               
                                                  
         [proper(d())] =  [4]                     
                          [1]                     
                       >  [3]                     
                          [1]                     
                       =  [ok(d())]               
                                                  
      [top^#(mark(X))] =  [4 8] X + [7]           
                          [1 2]     [4]           
                       >= [4 8] X + [7]           
                          [0 0]     [0]           
                       =  [c_10(top^#(proper(X)))]
                                                  
        [top^#(ok(X))] =  [4 4] X + [7]           
                          [1 0]     [5]           
                       >= [4 4] X + [7]           
                          [0 0]     [0]           
                       =  [c_11(top^#(active(X)))]
                                                  
  
  We return to the main proof.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs:
    { top^#(mark(X)) -> c_10(top^#(proper(X)))
    , top^#(ok(X)) -> c_11(top^#(active(X))) }
  Weak Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

* Path {5}: YES(O(1),O(1))
  ------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Weak DPs: { active^#(c()) -> c_3() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  No rule is usable, rules are removed from the input problem.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs: { active^#(c()) -> c_3() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

* Path {6}: YES(O(1),O(1))
  ------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Weak DPs: { proper^#(c()) -> c_8() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  No rule is usable, rules are removed from the input problem.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs: { proper^#(c()) -> c_8() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

* Path {7}: YES(O(1),O(1))
  ------------------------
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Strict Trs:
    { active(g(X)) -> mark(h(X))
    , active(h(d())) -> mark(g(c()))
    , active(c()) -> mark(d())
    , g(ok(X)) -> ok(g(X))
    , h(ok(X)) -> ok(h(X))
    , proper(g(X)) -> g(proper(X))
    , proper(h(X)) -> h(proper(X))
    , proper(c()) -> ok(c())
    , proper(d()) -> ok(d()) }
  Weak DPs: { proper^#(d()) -> c_9() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  No rule is usable, rules are removed from the input problem.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs: { proper^#(d()) -> c_9() }
  Obligation:
    runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

Hurray, we answered YES(?,O(n^1))