### (0) Obligation:

The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1).

The TRS R consists of the following rules:

f(x, a(b(c(y)))) → f(b(c(a(b(x)))), y)
f(a(x), y) → f(x, a(y))
f(b(x), y) → f(x, b(y))
f(c(x), y) → f(x, c(y))

Rewrite Strategy: FULL

### (1) RcToIrcProof (BOTH BOUNDS(ID, ID) transformation)

Converted rc-obligation to irc-obligation.

As the TRS does not nest defined symbols, we have rc = irc.

### (2) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).

The TRS R consists of the following rules:

f(x, a(b(c(y)))) → f(b(c(a(b(x)))), y)
f(a(x), y) → f(x, a(y))
f(b(x), y) → f(x, b(y))
f(c(x), y) → f(x, c(y))

Rewrite Strategy: INNERMOST

### (3) CpxTrsMatchBoundsTAProof (EQUIVALENT transformation)

A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 3.

The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by:
final states : [1]
transitions:
a0(0) → 0
b0(0) → 0
c0(0) → 0
f0(0, 0) → 1
b1(0) → 5
a1(5) → 4
c1(4) → 3
b1(3) → 2
f1(2, 0) → 1
a1(0) → 6
f1(0, 6) → 1
b1(0) → 7
f1(0, 7) → 1
c1(0) → 8
f1(0, 8) → 1
b1(2) → 5
a1(6) → 6
a1(7) → 6
a1(8) → 6
b1(6) → 7
b1(7) → 7
b1(8) → 7
b2(0) → 9
f2(3, 9) → 1
c1(6) → 8
c1(7) → 8
c1(8) → 8
b2(0) → 13
a2(13) → 12
c2(12) → 11
b2(11) → 10
f2(10, 0) → 1
f2(10, 6) → 1
f2(10, 7) → 1
f2(10, 8) → 1
c2(9) → 14
f2(4, 14) → 1
b1(10) → 5
b2(10) → 13
a2(14) → 15
f2(5, 15) → 1
b3(0) → 16
f3(11, 16) → 1
b3(6) → 16
b3(7) → 16
b3(8) → 16
b2(15) → 9
f2(0, 9) → 1
f2(2, 9) → 1
f2(10, 9) → 1
c3(16) → 17
f3(12, 17) → 1
a1(9) → 6
b1(9) → 7
b2(9) → 9
b3(9) → 16
c1(9) → 8
a3(17) → 18
f3(13, 18) → 1
b3(18) → 16
f3(0, 16) → 1
f3(10, 16) → 1
a1(16) → 6
b1(16) → 7
b3(16) → 16
c1(16) → 8
f2(10, 16) → 1