(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
p(s(N)) → N
+(N, 0) → N
+(s(N), s(M)) → s(s(+(N, M)))
*(N, 0) → 0
*(s(N), s(M)) → s(+(N, +(M, *(N, M))))
gt(0, M) → False
gt(NzN, 0) → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0) → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0, N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0)
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0
gcd(0, N) → 0
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)
Rewrite Strategy: FULL
 
(1) RenamingProof (EQUIVALENT transformation)
Renamed function symbols to avoid clashes with predefined symbol.
(2) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)
S is empty.
Rewrite Strategy: FULL
 
(3) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)
Infered types.
(4) Obligation:
TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
(5) OrderProof (LOWER BOUND(ID) transformation)
Heuristically decided to analyse the following defined symbols:
+', 
*', 
gt, 
d, 
quot, 
gcdThey will be analysed ascendingly in the following order:
+' < *'
gt < quot
gt < gcd
d < quot
d < gcd
 
(6) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
+', *', gt, d, quot, gcd
They will be analysed ascendingly in the following order:
+' < *'
gt < quot
gt < gcd
d < quot
d < gcd
 
(7) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
+'(
gen_s:0'3_0(
n5_0), 
gen_s:0'3_0(
n5_0)) → 
gen_s:0'3_0(
*(
2, 
n5_0)), rt ∈ Ω(1 + n5
0)
Induction Base:
+'(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
gen_s:0'3_0(0)
Induction Step:
+'(gen_s:0'3_0(+(n5_0, 1)), gen_s:0'3_0(+(n5_0, 1))) →RΩ(1)
s(s(+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)))) →IH
s(s(gen_s:0'3_0(*(2, c6_0))))
We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
 
(8) Complex Obligation (BEST)
(9) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
*', gt, d, quot, gcd
They will be analysed ascendingly in the following order:
gt < quot
gt < gcd
d < quot
d < gcd
 
(10) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
*'(
gen_s:0'3_0(
+(
1, 
n537_0)), 
gen_s:0'3_0(
+(
1, 
n537_0))) → 
*4_0, rt ∈ Ω(n537
0)
Induction Base:
*'(gen_s:0'3_0(+(1, 0)), gen_s:0'3_0(+(1, 0)))
Induction Step:
*'(gen_s:0'3_0(+(1, +(n537_0, 1))), gen_s:0'3_0(+(1, +(n537_0, 1)))) →RΩ(1)
s(+'(gen_s:0'3_0(+(1, n537_0)), +'(gen_s:0'3_0(+(1, n537_0)), *'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0)))))) →IH
s(+'(gen_s:0'3_0(+(1, n537_0)), +'(gen_s:0'3_0(+(1, n537_0)), *4_0)))
We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
 
(11) Complex Obligation (BEST)
(12) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
gt, d, quot, gcd
They will be analysed ascendingly in the following order:
gt < quot
gt < gcd
d < quot
d < gcd
 
(13) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
gt(
gen_s:0'3_0(
n35359_0), 
gen_s:0'3_0(
n35359_0)) → 
False, rt ∈ Ω(1 + n35359
0)
Induction Base:
gt(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
False
Induction Step:
gt(gen_s:0'3_0(+(n35359_0, 1)), gen_s:0'3_0(+(n35359_0, 1))) →RΩ(1)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) →IH
False
We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
 
(14) Complex Obligation (BEST)
(15) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
d, quot, gcd
They will be analysed ascendingly in the following order:
d < quot
d < gcd
 
(16) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
d(
gen_s:0'3_0(
n35748_0), 
gen_s:0'3_0(
n35748_0)) → 
gen_s:0'3_0(
0), rt ∈ Ω(1 + n35748
0)
Induction Base:
d(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
gen_s:0'3_0(0)
Induction Step:
d(gen_s:0'3_0(+(n35748_0, 1)), gen_s:0'3_0(+(n35748_0, 1))) →RΩ(1)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) →IH
gen_s:0'3_0(0)
We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
 
(17) Complex Obligation (BEST)
(18) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
quot, gcd
 
(19) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol quot.
(20) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
The following defined symbols remain to be analysed:
gcd
 
(21) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol gcd.
(22) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
No more defined symbols left to analyse.
 
(23) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
(24) BOUNDS(n^1, INF)
(25) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
No more defined symbols left to analyse.
 
(26) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
(27) BOUNDS(n^1, INF)
(28) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
No more defined symbols left to analyse.
 
(29) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
(30) BOUNDS(n^1, INF)
(31) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
No more defined symbols left to analyse.
 
(32) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
(33) BOUNDS(n^1, INF)
(34) Obligation:
TRS:
Rules:
p(
s(
N)) → 
N+'(
N, 
0') → 
N+'(
s(
N), 
s(
M)) → 
s(
s(
+'(
N, 
M)))
*'(
N, 
0') → 
0'*'(
s(
N), 
s(
M)) → 
s(
+'(
N, 
+'(
M, 
*'(
N, 
M))))
gt(
0', 
M) → 
Falsegt(
NzN, 
0') → 
u_4(
is_NzNat(
NzN))
u_4(
True) → 
Trueis_NzNat(
0') → 
Falseis_NzNat(
s(
N)) → 
Truegt(
s(
N), 
s(
M)) → 
gt(
N, 
M)
lt(
N, 
M) → 
gt(
M, 
N)
d(
0', 
N) → 
Nd(
s(
N), 
s(
M)) → 
d(
N, 
M)
quot(
N, 
NzM) → 
u_11(
is_NzNat(
NzM), 
N, 
NzM)
u_11(
True, 
N, 
NzM) → 
u_1(
gt(
N, 
NzM), 
N, 
NzM)
u_1(
True, 
N, 
NzM) → 
s(
quot(
d(
N, 
NzM), 
NzM))
quot(
NzM, 
NzM) → 
u_01(
is_NzNat(
NzM))
u_01(
True) → 
s(
0')
quot(
N, 
NzM) → 
u_21(
is_NzNat(
NzM), 
NzM, 
N)
u_21(
True, 
NzM, 
N) → 
u_2(
gt(
NzM, 
N))
u_2(
True) → 
0'gcd(
0', 
N) → 
0'gcd(
NzM, 
NzM) → 
u_02(
is_NzNat(
NzM), 
NzM)
u_02(
True, 
NzM) → 
NzMgcd(
NzN, 
NzM) → 
u_31(
is_NzNat(
NzN), 
is_NzNat(
NzM), 
NzN, 
NzM)
u_31(
True, 
True, 
NzN, 
NzM) → 
u_3(
gt(
NzN, 
NzM), 
NzN, 
NzM)
u_3(
True, 
NzN, 
NzM) → 
gcd(
d(
NzN, 
NzM), 
NzM)
Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'
Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))
No more defined symbols left to analyse.
 
(35) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
(36) BOUNDS(n^1, INF)