TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60048 ms.

The following DP Processors were used


Problem 1 was processed with processor ForwardNarrowing (6ms).
 | – Problem 2 was processed with processor ForwardNarrowing (1ms).
 |    | – Problem 3 was processed with processor ForwardNarrowing (7ms).
 |    |    | – Problem 4 was processed with processor ForwardNarrowing (7ms).
 |    |    |    | – Problem 5 was processed with processor ForwardNarrowing (9ms).
 |    |    |    |    | – Problem 6 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    | – Problem 7 was processed with processor ForwardNarrowing (15ms).
 |    |    |    |    |    |    | – Problem 8 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    |    |    | – Problem 9 was processed with processor ForwardNarrowing (16ms).
 |    |    |    |    |    |    |    |    | – Problem 10 was processed with processor ForwardNarrowing (13ms).
 |    |    |    |    |    |    |    |    |    | – Problem 11 was processed with processor ForwardNarrowing (12ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 12 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 13 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 14 was processed with processor ForwardNarrowing (12ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 15 was processed with processor ForwardNarrowing (13ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 16 was processed with processor ForwardNarrowing (13ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor ForwardNarrowing (12ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 18 was processed with processor ForwardNarrowing (14ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 19 was processed with processor ForwardNarrowing (47ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 20 was processed with processor ForwardNarrowing (45ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 21 was processed with processor ForwardNarrowing (11ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 22 was processed with processor ForwardNarrowing (16ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 23 was processed with processor ForwardNarrowing (26ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 24 was processed with processor ForwardNarrowing (65ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 25 was processed with processor ForwardNarrowing (36ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 26 was processed with processor ForwardNarrowing (97ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 27 was processed with processor ForwardNarrowing (103ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 28 was processed with processor ForwardNarrowing (101ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 29 was processed with processor ForwardNarrowing (71ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 30 remains open; application of the following processors failed [ForwardNarrowing (69ms), ForwardNarrowing (56ms), ForwardNarrowing (49ms), ForwardNarrowing (53ms), ForwardNarrowing (timeout)].

The following open problems remain:



Open Dependency Pair Problem 1

Dependency Pairs

app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(f, 0), n)app#(map, f)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(f, 0), n)app#(cons, 0)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil


Problem 1: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(f, 0), n)app#(map, f)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(f, 0), n)app#(cons, 0)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(f, 0), n) → app#(app(hd, app(app(map, f), app(app(cons, 0), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n) 
Thus, the rule app#(app(f, 0), n) → app#(app(hd, app(app(map, f), app(app(cons, 0), nil))), n) is replaced by the following rules:
app#(app(f, 0), n) → app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(_x41, 0), n) → app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n)

Problem 2: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(f, 0), n)app#(map, f)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(cons, 0)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(f, 0), n) → app#(map, f) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
Thus, the rule app#(app(f, 0), n) → app#(map, f) is deleted.

Problem 3: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(f, 0), n)app#(cons, 0)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(cons, 0), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)

Problem 4: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)

Problem 5: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)

Problem 6: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Problem 7: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)

Problem 8: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)

Problem 9: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)

Problem 10: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)

Problem 11: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)

Problem 12: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Problem 13: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)

Problem 14: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)

Problem 15: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)

Problem 16: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)

Problem 17: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)

Problem 18: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)

Problem 19: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(cons, 0)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)

Problem 20: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(f, 0), n)app#(cons, 0)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(map, f)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, cons, nil

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)

Problem 21: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)

Problem 22: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(map, f)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)

Problem 23: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(cons, 0), nil)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)

Problem 24: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)

Problem 25: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(cons, app(f, x))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)

Problem 26: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(map, app(map, _x31)), app(app(cons, app(app(cons, _x33), _x32)), xs))app#(cons, app(app(cons, app(_x31, _x33)), app(app(map, _x31), _x32)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(map, app(map, _x31)), app(app(cons, nil), xs))app#(cons, nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, app(_x31, 0)), app(app(cons, _x32), xs))app#(cons, app(app(hd, app(app(map, _x31), app(app(cons, 0), nil))), _x32))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)

Problem 27: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)
app#(app(map, app(map, _x31)), app(app(cons, app(app(cons, _x33), _x32)), xs))app#(cons, app(app(cons, app(_x31, _x33)), app(app(map, _x31), _x32)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, app(_x31, 0)), app(app(cons, _x32), xs))app#(cons, app(app(hd, app(app(map, _x31), app(app(cons, 0), nil))), _x32))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)

Problem 28: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(map, app(map, _x31)), app(app(cons, app(app(cons, _x33), _x32)), xs))app#(cons, app(app(cons, app(_x31, _x33)), app(app(map, _x31), _x32)))
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, app(_x31, 0)), app(app(cons, _x32), xs))app#(cons, app(app(hd, app(app(map, _x31), app(app(cons, 0), nil))), _x32))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(f, x)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)

Problem 29: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

app#(app(f, 0), n)app#(app(cons, 0), nil)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(map, f), xs)app#(app(map, app(map, _x31)), app(app(cons, app(app(cons, _x33), _x32)), xs))app#(cons, app(app(cons, app(_x31, _x33)), app(app(map, _x31), _x32)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(_x41, 0), n)app#(app(hd, app(app(cons, app(_x41, 0)), app(app(map, _x41), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(f, 0), n)app#(app(map, f), app(app(cons, 0), nil))app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(f, 0), n)app#(hd, app(app(map, f), app(app(cons, 0), nil)))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(f, 0), n)app#(app(hd, app(app(map, f), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(map, app(_x31, 0)), app(app(cons, _x32), xs))app#(cons, app(app(hd, app(app(map, _x31), app(app(cons, 0), nil))), _x32))
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(map, f), app(app(cons, x), xs))app#(app(cons, app(f, x)), app(app(map, f), xs))app#(app(map, f), app(app(cons, x), xs))app#(f, x)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), app(app(map, map), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(cons, 0), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(cons, app(map, 0)), nil)), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(cons, 0), nil))), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), n)
app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), n)app#(app(0, 0), n)app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), n)

Rewrite Rules

app(app(f, 0), n)app(app(hd, app(app(map, f), app(app(cons, 0), nil))), n)app(app(map, f), nil)nil
app(app(map, f), app(app(cons, x), xs))app(app(cons, app(f, x)), app(app(map, f), xs))

Original Signature

Termination of terms over the following signature is verified: app, 0, map, hd, nil, cons

Strategy


The right-hand side of the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) 
Thus, the rule app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n) is replaced by the following rules:
app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(cons, 0), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)app#(app(0, 0), n) → app#(app(hd, app(app(hd, app(app(map, map), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), app(app(map, cons), nil))), nil))), nil))), nil))), nil))), nil))), nil))), nil))), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(map, cons), app(app(hd, app(app(cons, app(cons, 0)), nil)), nil))), nil))), nil))), nil))), n)