MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x)
  , f(s(x), y) -> f(half(s(x)), double(y))
  , f(s(0()), y) -> y
  , id(x) -> f(x, s(0())) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We add following dependency tuples:

Strict DPs:
  { g^#(x, 0()) -> c_1()
  , g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(0())) -> c_3()
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
  , f^#(s(0()), y) -> c_8()
  , id^#(x) -> c_9(f^#(x, s(0()))) }

and mark the set of starting terms.

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { g^#(x, 0()) -> c_1()
  , g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(0())) -> c_3()
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
  , f^#(s(0()), y) -> c_8()
  , id^#(x) -> c_9(f^#(x, s(0()))) }
Weak Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x)
  , f(s(x), y) -> f(half(s(x)), double(y))
  , f(s(0()), y) -> y
  , id(x) -> f(x, s(0())) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

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

  DPs:
    { 1: g^#(x, 0()) -> c_1()
    , 2: g^#(d(), s(x)) -> c_2(g^#(d(), x))
    , 3: g^#(h(), s(0())) -> c_3()
    , 4: g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
    , 5: double^#(x) -> c_5(g^#(d(), x))
    , 6: half^#(x) -> c_6(g^#(h(), x))
    , 7: f^#(s(x), y) ->
         c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
    , 8: f^#(s(0()), y) -> c_8()
    , 9: id^#(x) -> c_9(f^#(x, s(0()))) }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
  , id^#(x) -> c_9(f^#(x, s(0()))) }
Weak DPs:
  { g^#(x, 0()) -> c_1()
  , g^#(h(), s(0())) -> c_3()
  , f^#(s(0()), y) -> c_8() }
Weak Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x)
  , f(s(x), y) -> f(half(s(x)), double(y))
  , f(s(0()), y) -> y
  , id(x) -> f(x, s(0())) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.

{ g^#(x, 0()) -> c_1()
, g^#(h(), s(0())) -> c_3()
, f^#(s(0()), y) -> c_8() }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
  , id^#(x) -> c_9(f^#(x, s(0()))) }
Weak Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x)
  , f(s(x), y) -> f(half(s(x)), double(y))
  , f(s(0()), y) -> y
  , id(x) -> f(x, s(0())) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

Consider the dependency graph

  1: g^#(d(), s(x)) -> c_2(g^#(d(), x))
     -->_1 g^#(d(), s(x)) -> c_2(g^#(d(), x)) :1
  
  2: g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
     -->_1 g^#(h(), s(s(x))) -> c_4(g^#(h(), x)) :2
  
  3: double^#(x) -> c_5(g^#(d(), x))
     -->_1 g^#(d(), s(x)) -> c_2(g^#(d(), x)) :1
  
  4: half^#(x) -> c_6(g^#(h(), x))
     -->_1 g^#(h(), s(s(x))) -> c_4(g^#(h(), x)) :2
  
  5: f^#(s(x), y) ->
     c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y))
     -->_1 f^#(s(x), y) ->
           c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y)) :5
     -->_2 half^#(x) -> c_6(g^#(h(), x)) :4
     -->_3 double^#(x) -> c_5(g^#(d(), x)) :3
  
  6: id^#(x) -> c_9(f^#(x, s(0())))
     -->_1 f^#(s(x), y) ->
           c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y)) :5
  

Following roots of the dependency graph are removed, as the
considered set of starting terms is closed under reduction with
respect to these rules (modulo compound contexts).

  { id^#(x) -> c_9(f^#(x, s(0()))) }


We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y)) }
Weak Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x)
  , f(s(x), y) -> f(half(s(x)), double(y))
  , f(s(0()), y) -> y
  , id(x) -> f(x, s(0())) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We replace rewrite rules by usable rules:

  Weak Usable Rules:
    { g(x, 0()) -> 0()
    , g(d(), s(x)) -> s(s(g(d(), x)))
    , g(h(), s(0())) -> 0()
    , g(h(), s(s(x))) -> s(g(h(), x))
    , double(x) -> g(d(), x)
    , half(x) -> g(h(), x) }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { g^#(d(), s(x)) -> c_2(g^#(d(), x))
  , g^#(h(), s(s(x))) -> c_4(g^#(h(), x))
  , double^#(x) -> c_5(g^#(d(), x))
  , half^#(x) -> c_6(g^#(h(), x))
  , f^#(s(x), y) ->
    c_7(f^#(half(s(x)), double(y)), half^#(s(x)), double^#(y)) }
Weak Trs:
  { g(x, 0()) -> 0()
  , g(d(), s(x)) -> s(s(g(d(), x)))
  , g(h(), s(0())) -> 0()
  , g(h(), s(s(x))) -> s(g(h(), x))
  , double(x) -> g(d(), x)
  , half(x) -> g(h(), x) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..