Runtime Complexity TRS:
The TRS R consists of the following rules:

10241024_1(0)
1024_1(x) → if(lt(x, 10), x)
if(true, x) → double(1024_1(s(x)))
if(false, x) → s(0)
lt(0, s(y)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
double(0) → 0
double(s(x)) → s(s(double(x)))
10double(s(double(s(s(0)))))

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


Runtime Complexity TRS:
The TRS R consists of the following rules:


1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Rewrite Strategy: INNERMOST


Infered types.


Rules:
1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Types:
1024' :: 0':s'
1024_1' :: 0':s' → 0':s'
0' :: 0':s'
if' :: true':false' → 0':s' → 0':s'
lt' :: 0':s' → 0':s' → true':false'
10' :: 0':s'
true' :: true':false'
double' :: 0':s' → 0':s'
s' :: 0':s' → 0':s'
false' :: true':false'
_hole_0':s'1 :: 0':s'
_hole_true':false'2 :: true':false'
_gen_0':s'3 :: Nat → 0':s'


Heuristically decided to analyse the following defined symbols:
1024_1', lt', double'

They will be analysed ascendingly in the following order:
lt' < 1024_1'
double' < 1024_1'


Rules:
1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Types:
1024' :: 0':s'
1024_1' :: 0':s' → 0':s'
0' :: 0':s'
if' :: true':false' → 0':s' → 0':s'
lt' :: 0':s' → 0':s' → true':false'
10' :: 0':s'
true' :: true':false'
double' :: 0':s' → 0':s'
s' :: 0':s' → 0':s'
false' :: true':false'
_hole_0':s'1 :: 0':s'
_hole_true':false'2 :: true':false'
_gen_0':s'3 :: Nat → 0':s'

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))

The following defined symbols remain to be analysed:
lt', 1024_1', double'

They will be analysed ascendingly in the following order:
lt' < 1024_1'
double' < 1024_1'


Proved the following rewrite lemma:
lt'(_gen_0':s'3(_n5), _gen_0':s'3(+(1, _n5))) → true', rt ∈ Ω(1 + n5)

Induction Base:
lt'(_gen_0':s'3(0), _gen_0':s'3(+(1, 0))) →RΩ(1)
true'

Induction Step:
lt'(_gen_0':s'3(+(_$n6, 1)), _gen_0':s'3(+(1, +(_$n6, 1)))) →RΩ(1)
lt'(_gen_0':s'3(_$n6), _gen_0':s'3(+(1, _$n6))) →IH
true'

We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).


Rules:
1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Types:
1024' :: 0':s'
1024_1' :: 0':s' → 0':s'
0' :: 0':s'
if' :: true':false' → 0':s' → 0':s'
lt' :: 0':s' → 0':s' → true':false'
10' :: 0':s'
true' :: true':false'
double' :: 0':s' → 0':s'
s' :: 0':s' → 0':s'
false' :: true':false'
_hole_0':s'1 :: 0':s'
_hole_true':false'2 :: true':false'
_gen_0':s'3 :: Nat → 0':s'

Lemmas:
lt'(_gen_0':s'3(_n5), _gen_0':s'3(+(1, _n5))) → true', rt ∈ Ω(1 + n5)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))

The following defined symbols remain to be analysed:
double', 1024_1'

They will be analysed ascendingly in the following order:
double' < 1024_1'


Proved the following rewrite lemma:
double'(_gen_0':s'3(_n434)) → _gen_0':s'3(*(2, _n434)), rt ∈ Ω(1 + n434)

Induction Base:
double'(_gen_0':s'3(0)) →RΩ(1)
0'

Induction Step:
double'(_gen_0':s'3(+(_$n435, 1))) →RΩ(1)
s'(s'(double'(_gen_0':s'3(_$n435)))) →IH
s'(s'(_gen_0':s'3(*(2, _$n435))))

We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).


Rules:
1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Types:
1024' :: 0':s'
1024_1' :: 0':s' → 0':s'
0' :: 0':s'
if' :: true':false' → 0':s' → 0':s'
lt' :: 0':s' → 0':s' → true':false'
10' :: 0':s'
true' :: true':false'
double' :: 0':s' → 0':s'
s' :: 0':s' → 0':s'
false' :: true':false'
_hole_0':s'1 :: 0':s'
_hole_true':false'2 :: true':false'
_gen_0':s'3 :: Nat → 0':s'

Lemmas:
lt'(_gen_0':s'3(_n5), _gen_0':s'3(+(1, _n5))) → true', rt ∈ Ω(1 + n5)
double'(_gen_0':s'3(_n434)) → _gen_0':s'3(*(2, _n434)), rt ∈ Ω(1 + n434)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))

The following defined symbols remain to be analysed:
1024_1'


Could not prove a rewrite lemma for the defined symbol 1024_1'.


Rules:
1024'1024_1'(0')
1024_1'(x) → if'(lt'(x, 10'), x)
if'(true', x) → double'(1024_1'(s'(x)))
if'(false', x) → s'(0')
lt'(0', s'(y)) → true'
lt'(x, 0') → false'
lt'(s'(x), s'(y)) → lt'(x, y)
double'(0') → 0'
double'(s'(x)) → s'(s'(double'(x)))
10'double'(s'(double'(s'(s'(0')))))

Types:
1024' :: 0':s'
1024_1' :: 0':s' → 0':s'
0' :: 0':s'
if' :: true':false' → 0':s' → 0':s'
lt' :: 0':s' → 0':s' → true':false'
10' :: 0':s'
true' :: true':false'
double' :: 0':s' → 0':s'
s' :: 0':s' → 0':s'
false' :: true':false'
_hole_0':s'1 :: 0':s'
_hole_true':false'2 :: true':false'
_gen_0':s'3 :: Nat → 0':s'

Lemmas:
lt'(_gen_0':s'3(_n5), _gen_0':s'3(+(1, _n5))) → true', rt ∈ Ω(1 + n5)
double'(_gen_0':s'3(_n434)) → _gen_0':s'3(*(2, _n434)), rt ∈ Ω(1 + n434)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))

No more defined symbols left to analyse.


The lowerbound Ω(n) was proven with the following lemma:
lt'(_gen_0':s'3(_n5), _gen_0':s'3(+(1, _n5))) → true', rt ∈ Ω(1 + n5)