Runtime Complexity TRS:
The TRS R consists of the following rules:
plus(s(s(x)), y) → s(plus(x, s(y)))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(s(0), y) → s(y)
plus(0, y) → y
ack(0, y) → s(y)
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, plus(y, ack(s(x), y)))
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
plus'(s'(s'(x)), y) → s'(plus'(x, s'(y)))
plus'(x, s'(s'(y))) → s'(plus'(s'(x), y))
plus'(s'(0'), y) → s'(y)
plus'(0', y) → y
ack'(0', y) → s'(y)
ack'(s'(x), 0') → ack'(x, s'(0'))
ack'(s'(x), s'(y)) → ack'(x, plus'(y, ack'(s'(x), y)))
Infered types.
Rules:
plus'(s'(s'(x)), y) → s'(plus'(x, s'(y)))
plus'(x, s'(s'(y))) → s'(plus'(s'(x), y))
plus'(s'(0'), y) → s'(y)
plus'(0', y) → y
ack'(0', y) → s'(y)
ack'(s'(x), 0') → ack'(x, s'(0'))
ack'(s'(x), s'(y)) → ack'(x, plus'(y, ack'(s'(x), y)))
Types:
plus' :: s':0' → s':0' → s':0'
s' :: s':0' → s':0'
0' :: s':0'
ack' :: s':0' → s':0' → s':0'
_hole_s':0'1 :: s':0'
_gen_s':0'2 :: Nat → s':0'
Heuristically decided to analyse the following defined symbols:
plus', ack'
They will be analysed ascendingly in the following order:
plus' < ack'
Rules:
plus'(s'(s'(x)), y) → s'(plus'(x, s'(y)))
plus'(x, s'(s'(y))) → s'(plus'(s'(x), y))
plus'(s'(0'), y) → s'(y)
plus'(0', y) → y
ack'(0', y) → s'(y)
ack'(s'(x), 0') → ack'(x, s'(0'))
ack'(s'(x), s'(y)) → ack'(x, plus'(y, ack'(s'(x), y)))
Types:
plus' :: s':0' → s':0' → s':0'
s' :: s':0' → s':0'
0' :: s':0'
ack' :: s':0' → s':0' → s':0'
_hole_s':0'1 :: s':0'
_gen_s':0'2 :: Nat → s':0'
Generator Equations:
_gen_s':0'2(0) ⇔ 0'
_gen_s':0'2(+(x, 1)) ⇔ s'(_gen_s':0'2(x))
The following defined symbols remain to be analysed:
plus', ack'
They will be analysed ascendingly in the following order:
plus' < ack'
Could not prove a rewrite lemma for the defined symbol plus'.
The following conjecture could not be proven:
plus'(_gen_s':0'2(+(1, *(2, _n4))), _gen_s':0'2(b)) →? _gen_s':0'2(+(+(1, *(2, _n4)), b))
Rules:
plus'(s'(s'(x)), y) → s'(plus'(x, s'(y)))
plus'(x, s'(s'(y))) → s'(plus'(s'(x), y))
plus'(s'(0'), y) → s'(y)
plus'(0', y) → y
ack'(0', y) → s'(y)
ack'(s'(x), 0') → ack'(x, s'(0'))
ack'(s'(x), s'(y)) → ack'(x, plus'(y, ack'(s'(x), y)))
Types:
plus' :: s':0' → s':0' → s':0'
s' :: s':0' → s':0'
0' :: s':0'
ack' :: s':0' → s':0' → s':0'
_hole_s':0'1 :: s':0'
_gen_s':0'2 :: Nat → s':0'
Generator Equations:
_gen_s':0'2(0) ⇔ 0'
_gen_s':0'2(+(x, 1)) ⇔ s'(_gen_s':0'2(x))
The following defined symbols remain to be analysed:
ack'
Proved the following rewrite lemma:
ack'(_gen_s':0'2(1), _gen_s':0'2(+(1, _n1908))) → _*3, rt ∈ Ω(n1908)
Induction Base:
ack'(_gen_s':0'2(1), _gen_s':0'2(+(1, 0)))
Induction Step:
ack'(_gen_s':0'2(1), _gen_s':0'2(+(1, +(_$n1909, 1)))) →RΩ(1)
ack'(_gen_s':0'2(0), plus'(_gen_s':0'2(+(1, _$n1909)), ack'(s'(_gen_s':0'2(0)), _gen_s':0'2(+(1, _$n1909))))) →IH
ack'(_gen_s':0'2(0), plus'(_gen_s':0'2(+(1, _$n1909)), _*3))
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
plus'(s'(s'(x)), y) → s'(plus'(x, s'(y)))
plus'(x, s'(s'(y))) → s'(plus'(s'(x), y))
plus'(s'(0'), y) → s'(y)
plus'(0', y) → y
ack'(0', y) → s'(y)
ack'(s'(x), 0') → ack'(x, s'(0'))
ack'(s'(x), s'(y)) → ack'(x, plus'(y, ack'(s'(x), y)))
Types:
plus' :: s':0' → s':0' → s':0'
s' :: s':0' → s':0'
0' :: s':0'
ack' :: s':0' → s':0' → s':0'
_hole_s':0'1 :: s':0'
_gen_s':0'2 :: Nat → s':0'
Lemmas:
ack'(_gen_s':0'2(1), _gen_s':0'2(+(1, _n1908))) → _*3, rt ∈ Ω(n1908)
Generator Equations:
_gen_s':0'2(0) ⇔ 0'
_gen_s':0'2(+(x, 1)) ⇔ s'(_gen_s':0'2(x))
No more defined symbols left to analyse.
The lowerbound Ω(n) was proven with the following lemma:
ack'(_gen_s':0'2(1), _gen_s':0'2(+(1, _n1908))) → _*3, rt ∈ Ω(n1908)