### (0) Obligation:

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

a(lambda(x), y) → lambda(a(x, p(1, a(y, t))))
a(p(x, y), z) → p(a(x, z), a(y, z))
a(a(x, y), z) → a(x, a(y, z))
a(id, x) → x
a(1, id) → 1
a(t, id) → t
a(1, p(x, y)) → x
a(t, p(x, y)) → y

Rewrite Strategy: FULL

### (1) DecreasingLoopProof (EQUIVALENT transformation)

The following loop(s) give(s) rise to the lower bound Ω(n1):
The rewrite sequence
a(lambda(x), y) →+ lambda(a(x, p(1, a(y, t))))
gives rise to a decreasing loop by considering the right hand sides subterm at position [0].
The pumping substitution is [x / lambda(x)].
The result substitution is [y / p(1, a(y, t))].

### (3) RenamingProof (EQUIVALENT transformation)

Renamed function symbols to avoid clashes with predefined symbol.

### (4) Obligation:

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

a(lambda(x), y) → lambda(a(x, p(1', a(y, t))))
a(p(x, y), z) → p(a(x, z), a(y, z))
a(a(x, y), z) → a(x, a(y, z))
a(id, x) → x
a(1', id) → 1'
a(t, id) → t
a(1', p(x, y)) → x
a(t, p(x, y)) → y

S is empty.
Rewrite Strategy: FULL

Infered types.

### (6) Obligation:

TRS:
Rules:
a(lambda(x), y) → lambda(a(x, p(1', a(y, t))))
a(p(x, y), z) → p(a(x, z), a(y, z))
a(a(x, y), z) → a(x, a(y, z))
a(id, x) → x
a(1', id) → 1'
a(t, id) → t
a(1', p(x, y)) → x
a(t, p(x, y)) → y

Types:
a :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
lambda :: lambda:1':t:p:id → lambda:1':t:p:id
p :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
1' :: lambda:1':t:p:id
t :: lambda:1':t:p:id
id :: lambda:1':t:p:id
hole_lambda:1':t:p:id1_0 :: lambda:1':t:p:id
gen_lambda:1':t:p:id2_0 :: Nat → lambda:1':t:p:id

### (7) OrderProof (LOWER BOUND(ID) transformation)

Heuristically decided to analyse the following defined symbols:
a

### (8) Obligation:

TRS:
Rules:
a(lambda(x), y) → lambda(a(x, p(1', a(y, t))))
a(p(x, y), z) → p(a(x, z), a(y, z))
a(a(x, y), z) → a(x, a(y, z))
a(id, x) → x
a(1', id) → 1'
a(t, id) → t
a(1', p(x, y)) → x
a(t, p(x, y)) → y

Types:
a :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
lambda :: lambda:1':t:p:id → lambda:1':t:p:id
p :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
1' :: lambda:1':t:p:id
t :: lambda:1':t:p:id
id :: lambda:1':t:p:id
hole_lambda:1':t:p:id1_0 :: lambda:1':t:p:id
gen_lambda:1':t:p:id2_0 :: Nat → lambda:1':t:p:id

Generator Equations:
gen_lambda:1':t:p:id2_0(0) ⇔ 1'
gen_lambda:1':t:p:id2_0(+(x, 1)) ⇔ lambda(gen_lambda:1':t:p:id2_0(x))

The following defined symbols remain to be analysed:
a

### (9) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

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

### (10) Obligation:

TRS:
Rules:
a(lambda(x), y) → lambda(a(x, p(1', a(y, t))))
a(p(x, y), z) → p(a(x, z), a(y, z))
a(a(x, y), z) → a(x, a(y, z))
a(id, x) → x
a(1', id) → 1'
a(t, id) → t
a(1', p(x, y)) → x
a(t, p(x, y)) → y

Types:
a :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
lambda :: lambda:1':t:p:id → lambda:1':t:p:id
p :: lambda:1':t:p:id → lambda:1':t:p:id → lambda:1':t:p:id
1' :: lambda:1':t:p:id
t :: lambda:1':t:p:id
id :: lambda:1':t:p:id
hole_lambda:1':t:p:id1_0 :: lambda:1':t:p:id
gen_lambda:1':t:p:id2_0 :: Nat → lambda:1':t:p:id

Generator Equations:
gen_lambda:1':t:p:id2_0(0) ⇔ 1'
gen_lambda:1':t:p:id2_0(+(x, 1)) ⇔ lambda(gen_lambda:1':t:p:id2_0(x))

No more defined symbols left to analyse.