Runtime Complexity TRS:
The TRS R consists of the following rules:
active(f(x)) → mark(f(f(x)))
chk(no(f(x))) → f(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))), x)))
mat(f(x), f(y)) → f(mat(x, y))
chk(no(c)) → active(c)
mat(f(x), c) → no(c)
f(active(x)) → active(f(x))
f(no(x)) → no(f(x))
f(mark(x)) → mark(f(x))
tp(mark(x)) → tp(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))), x)))
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Infered types.
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Heuristically decided to analyse the following defined symbols:
active', f', chk', mat', tp'
They will be analysed ascendingly in the following order:
active' = f'
active' < chk'
f' < chk'
f' < mat'
f' < tp'
mat' < chk'
chk' < tp'
mat' < tp'
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
The following defined symbols remain to be analysed:
f', active', chk', mat', tp'
They will be analysed ascendingly in the following order:
active' = f'
active' < chk'
f' < chk'
f' < mat'
f' < tp'
mat' < chk'
chk' < tp'
mat' < tp'
Proved the following rewrite lemma:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Induction Base:
f'(_gen_mark':no':X':y':c'3(+(1, 0)))
Induction Step:
f'(_gen_mark':no':X':y':c'3(+(1, +(_$n6, 1)))) →RΩ(1)
mark'(f'(_gen_mark':no':X':y':c'3(+(1, _$n6)))) →IH
mark'(_*4)
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Lemmas:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
The following defined symbols remain to be analysed:
active', chk', mat', tp'
They will be analysed ascendingly in the following order:
active' = f'
active' < chk'
f' < chk'
f' < mat'
f' < tp'
mat' < chk'
chk' < tp'
mat' < tp'
Could not prove a rewrite lemma for the defined symbol active'.
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Lemmas:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
The following defined symbols remain to be analysed:
mat', chk', tp'
They will be analysed ascendingly in the following order:
mat' < chk'
chk' < tp'
mat' < tp'
Could not prove a rewrite lemma for the defined symbol mat'.
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Lemmas:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
The following defined symbols remain to be analysed:
chk', tp'
They will be analysed ascendingly in the following order:
chk' < tp'
Could not prove a rewrite lemma for the defined symbol chk'.
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Lemmas:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
The following defined symbols remain to be analysed:
tp'
Could not prove a rewrite lemma for the defined symbol tp'.
Rules:
active'(f'(x)) → mark'(f'(f'(x)))
chk'(no'(f'(x))) → f'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
mat'(f'(x), f'(y')) → f'(mat'(x, y'))
chk'(no'(c')) → active'(c')
mat'(f'(x), c') → no'(c')
f'(active'(x)) → active'(f'(x))
f'(no'(x)) → no'(f'(x))
f'(mark'(x)) → mark'(f'(x))
tp'(mark'(x)) → tp'(chk'(mat'(f'(f'(f'(f'(f'(f'(f'(f'(f'(f'(X')))))))))), x)))
Types:
active' :: mark':no':X':y':c' → mark':no':X':y':c'
f' :: mark':no':X':y':c' → mark':no':X':y':c'
mark' :: mark':no':X':y':c' → mark':no':X':y':c'
chk' :: mark':no':X':y':c' → mark':no':X':y':c'
no' :: mark':no':X':y':c' → mark':no':X':y':c'
mat' :: mark':no':X':y':c' → mark':no':X':y':c' → mark':no':X':y':c'
X' :: mark':no':X':y':c'
y' :: mark':no':X':y':c'
c' :: mark':no':X':y':c'
tp' :: mark':no':X':y':c' → tp'
_hole_mark':no':X':y':c'1 :: mark':no':X':y':c'
_hole_tp'2 :: tp'
_gen_mark':no':X':y':c'3 :: Nat → mark':no':X':y':c'
Lemmas:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)
Generator Equations:
_gen_mark':no':X':y':c'3(0) ⇔ c'
_gen_mark':no':X':y':c'3(+(x, 1)) ⇔ mark'(_gen_mark':no':X':y':c'3(x))
No more defined symbols left to analyse.
The lowerbound Ω(n) was proven with the following lemma:
f'(_gen_mark':no':X':y':c'3(+(1, _n5))) → _*4, rt ∈ Ω(n5)