Certification Problem
Input (TPDB TRS_Standard/AG01/#3.17)
The rewrite relation of the following TRS is considered.
|
app(nil,k) |
→ |
k |
(1) |
|
app(l,nil) |
→ |
l |
(2) |
|
app(cons(x,l),k) |
→ |
cons(x,app(l,k)) |
(3) |
|
sum(cons(x,nil)) |
→ |
cons(x,nil) |
(4) |
|
sum(cons(x,cons(y,l))) |
→ |
sum(cons(plus(x,y),l)) |
(5) |
|
sum(app(l,cons(x,cons(y,k)))) |
→ |
sum(app(l,sum(cons(x,cons(y,k))))) |
(6) |
|
plus(0,y) |
→ |
y |
(7) |
|
plus(s(x),y) |
→ |
s(plus(x,y)) |
(8) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 Rule Removal
Using the
linear polynomial interpretation over the naturals
| [app(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [nil] |
= |
0 |
| [cons(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [sum(x1)] |
= |
1 · x1
|
| [plus(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [0] |
= |
2 |
| [s(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
| [app(x1, x2)] |
= |
2 · x1 + 2 · x2
|
| [nil] |
= |
1 |
| [cons(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [sum(x1)] |
= |
1 · x1
|
| [plus(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [s(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
|
app(nil,k) |
→ |
k |
(1) |
|
app(l,nil) |
→ |
l |
(2) |
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
| [app(x1, x2)] |
= |
2 · x1 + 1 · x2
|
| [cons(x1, x2)] |
= |
1 + 2 · x1 + 1 · x2
|
| [sum(x1)] |
= |
1 · x1
|
| [nil] |
= |
0 |
| [plus(x1, x2)] |
= |
1 · x1 + 1 · x2
|
| [s(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
|
app(cons(x,l),k) |
→ |
cons(x,app(l,k)) |
(3) |
|
sum(cons(x,cons(y,l))) |
→ |
sum(cons(plus(x,y),l)) |
(5) |
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
| [sum(x1)] |
= |
1 · x1
|
| [cons(x1, x2)] |
= |
1 · x1 + 2 · x2
|
| [nil] |
= |
0 |
| [app(x1, x2)] |
= |
1 · x1 + 2 · x2
|
| [plus(x1, x2)] |
= |
2 + 2 · x1 + 2 · x2
|
| [s(x1)] |
= |
1 + 1 · x1
|
all of the following rules can be deleted.
|
plus(s(x),y) |
→ |
s(plus(x,y)) |
(8) |
1.1.1.1.1 Switch to Innermost Termination
The TRS is overlay and locally confluent:
10Hence, it suffices to show innermost termination in the following.
1.1.1.1.1.1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
|
sum#(app(l,cons(x,cons(y,k)))) |
→ |
sum#(app(l,sum(cons(x,cons(y,k))))) |
(9) |
|
sum#(app(l,cons(x,cons(y,k)))) |
→ |
sum#(cons(x,cons(y,k))) |
(10) |
1.1.1.1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 0
components.