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

f(x, 0, 0) → s(x)
f(0, y, 0) → s(y)
f(0, 0, z) → s(z)
f(s(0), y, z) → f(0, s(y), s(z))
f(s(x), s(y), 0) → f(x, y, s(0))
f(s(x), 0, s(z)) → f(x, s(0), z)
f(0, s(0), s(0)) → s(s(0))
f(s(x), s(y), s(z)) → f(x, y, f(s(x), s(y), z))
f(0, s(s(y)), s(0)) → f(0, y, s(0))
f(0, s(0), s(s(z))) → f(0, s(0), z)
f(0, s(s(y)), s(s(z))) → f(0, y, f(0, s(s(y)), s(z)))

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


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


f'(x, 0', 0') → s'(x)
f'(0', y, 0') → s'(y)
f'(0', 0', z) → s'(z)
f'(s'(0'), y, z) → f'(0', s'(y), s'(z))
f'(s'(x), s'(y), 0') → f'(x, y, s'(0'))
f'(s'(x), 0', s'(z)) → f'(x, s'(0'), z)
f'(0', s'(0'), s'(0')) → s'(s'(0'))
f'(s'(x), s'(y), s'(z)) → f'(x, y, f'(s'(x), s'(y), z))
f'(0', s'(s'(y)), s'(0')) → f'(0', y, s'(0'))
f'(0', s'(0'), s'(s'(z))) → f'(0', s'(0'), z)
f'(0', s'(s'(y)), s'(s'(z))) → f'(0', y, f'(0', s'(s'(y)), s'(z)))

Rewrite Strategy: INNERMOST


Infered types.


Rules:
f'(x, 0', 0') → s'(x)
f'(0', y, 0') → s'(y)
f'(0', 0', z) → s'(z)
f'(s'(0'), y, z) → f'(0', s'(y), s'(z))
f'(s'(x), s'(y), 0') → f'(x, y, s'(0'))
f'(s'(x), 0', s'(z)) → f'(x, s'(0'), z)
f'(0', s'(0'), s'(0')) → s'(s'(0'))
f'(s'(x), s'(y), s'(z)) → f'(x, y, f'(s'(x), s'(y), z))
f'(0', s'(s'(y)), s'(0')) → f'(0', y, s'(0'))
f'(0', s'(0'), s'(s'(z))) → f'(0', s'(0'), z)
f'(0', s'(s'(y)), s'(s'(z))) → f'(0', y, f'(0', s'(s'(y)), s'(z)))

Types:
f' :: 0':s' → 0':s' → 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
_hole_0':s'1 :: 0':s'
_gen_0':s'2 :: Nat → 0':s'


Heuristically decided to analyse the following defined symbols:
f'


Rules:
f'(x, 0', 0') → s'(x)
f'(0', y, 0') → s'(y)
f'(0', 0', z) → s'(z)
f'(s'(0'), y, z) → f'(0', s'(y), s'(z))
f'(s'(x), s'(y), 0') → f'(x, y, s'(0'))
f'(s'(x), 0', s'(z)) → f'(x, s'(0'), z)
f'(0', s'(0'), s'(0')) → s'(s'(0'))
f'(s'(x), s'(y), s'(z)) → f'(x, y, f'(s'(x), s'(y), z))
f'(0', s'(s'(y)), s'(0')) → f'(0', y, s'(0'))
f'(0', s'(0'), s'(s'(z))) → f'(0', s'(0'), z)
f'(0', s'(s'(y)), s'(s'(z))) → f'(0', y, f'(0', s'(s'(y)), s'(z)))

Types:
f' :: 0':s' → 0':s' → 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
_hole_0':s'1 :: 0':s'
_gen_0':s'2 :: Nat → 0':s'

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

The following defined symbols remain to be analysed:
f'


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


Rules:
f'(x, 0', 0') → s'(x)
f'(0', y, 0') → s'(y)
f'(0', 0', z) → s'(z)
f'(s'(0'), y, z) → f'(0', s'(y), s'(z))
f'(s'(x), s'(y), 0') → f'(x, y, s'(0'))
f'(s'(x), 0', s'(z)) → f'(x, s'(0'), z)
f'(0', s'(0'), s'(0')) → s'(s'(0'))
f'(s'(x), s'(y), s'(z)) → f'(x, y, f'(s'(x), s'(y), z))
f'(0', s'(s'(y)), s'(0')) → f'(0', y, s'(0'))
f'(0', s'(0'), s'(s'(z))) → f'(0', s'(0'), z)
f'(0', s'(s'(y)), s'(s'(z))) → f'(0', y, f'(0', s'(s'(y)), s'(z)))

Types:
f' :: 0':s' → 0':s' → 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
_hole_0':s'1 :: 0':s'
_gen_0':s'2 :: Nat → 0':s'

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

No more defined symbols left to analyse.