Certification Problem
Input (TPDB TRS_Standard/Zantema_05/z01)
The rewrite relation of the following TRS is considered.
a(f,a(f,a(g,a(g,x)))) |
→ |
a(g,a(g,a(g,a(f,a(f,a(f,x)))))) |
(1) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 Uncurrying
We uncurry the binary symbol
a
in combination with the following symbol map which also determines the applicative arities of these symbols.
f |
is mapped to |
f, |
f1(x1) |
g |
is mapped to |
g, |
g1(x1) |
There are no uncurry rules.
No rules have to be added for the eta-expansion.
Uncurrying the rules and adding the uncurrying rules yields the new set of rules
f1(f1(g1(g1(x)))) |
→ |
g1(g1(g1(f1(f1(f1(x)))))) |
(4) |
a(f,y1) |
→ |
f1(y1) |
(2) |
a(g,y1) |
→ |
g1(y1) |
(3) |
1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[f1(x1)] |
= |
1 · x1
|
[g1(x1)] |
= |
1 · x1
|
[a(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[f] |
= |
1 |
[g] |
= |
2 |
all of the following rules can be deleted.
a(f,y1) |
→ |
f1(y1) |
(2) |
a(g,y1) |
→ |
g1(y1) |
(3) |
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 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
f1#(f1(g1(g1(x)))) |
→ |
f1#(f1(f1(x))) |
(5) |
f1#(f1(g1(g1(x)))) |
→ |
f1#(f1(x)) |
(6) |
f1#(f1(g1(g1(x)))) |
→ |
f1#(x) |
(7) |
1.1.1.1.1 Narrowing Processor
We consider all narrowings of the pair
below position
1
to get the following set of pairs
f1#(f1(g1(g1(g1(g1(x0)))))) |
→ |
f1#(g1(g1(g1(f1(f1(f1(x0))))))) |
(8) |
f1#(f1(g1(g1(f1(g1(g1(x0))))))) |
→ |
f1#(f1(g1(g1(g1(f1(f1(f1(x0)))))))) |
(9) |
1.1.1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 1
component.
-
The
1st
component contains the
pair
f1#(f1(g1(g1(x)))) |
→ |
f1#(x) |
(7) |
f1#(f1(g1(g1(x)))) |
→ |
f1#(f1(x)) |
(6) |
f1#(f1(g1(g1(f1(g1(g1(x0))))))) |
→ |
f1#(f1(g1(g1(g1(f1(f1(f1(x0)))))))) |
(9) |
1.1.1.1.1.1.1 Forward Instantiation Processor
We instantiate the pair
to the following set of pairs
f1#(f1(g1(g1(f1(g1(g1(y_0))))))) |
→ |
f1#(f1(g1(g1(y_0)))) |
(10) |
f1#(f1(g1(g1(f1(g1(g1(f1(g1(g1(y_0)))))))))) |
→ |
f1#(f1(g1(g1(f1(g1(g1(y_0))))))) |
(11) |
1.1.1.1.1.1.1.1 Reduction Pair Processor
Using the matrix interpretations of dimension 4 with strict dimension 1 over the arctic semiring over the naturals
[f1#(x1)] |
= |
+
|
0 |
0 |
-∞ |
0 |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
|
|
· x1
|
[f1(x1)] |
= |
+
|
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
0 |
-∞ |
0 |
1 |
0 |
-∞ |
0 |
-∞ |
0 |
-∞ |
0 |
|
|
· x1
|
[g1(x1)] |
= |
+
|
-∞ |
-∞ |
-∞ |
0 |
0 |
0 |
0 |
0 |
0 |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
0 |
-∞ |
|
|
· x1
|
the
pair
f1#(f1(g1(g1(f1(g1(g1(f1(g1(g1(y_0)))))))))) |
→ |
f1#(f1(g1(g1(f1(g1(g1(y_0))))))) |
(11) |
could be deleted.
1.1.1.1.1.1.1.1.1 Reduction Pair Processor
Using the matrix interpretations of dimension 4 with strict dimension 1 over the arctic semiring over the naturals
[f1#(x1)] |
= |
+
|
-∞ |
0 |
0 |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
-∞ |
|
|
· x1
|
[f1(x1)] |
= |
+
|
-∞ |
0 |
0 |
-∞ |
-∞ |
-∞ |
0 |
-∞ |
-∞ |
0 |
-∞ |
-∞ |
0 |
1 |
-∞ |
-∞ |
|
|
· x1
|
[g1(x1)] |
= |
+
|
-∞ |
1 |
-∞ |
0 |
-∞ |
-∞ |
-∞ |
-∞ |
0 |
0 |
-∞ |
0 |
-∞ |
0 |
0 |
0 |
|
|
· x1
|
the
pairs
f1#(f1(g1(g1(f1(g1(g1(x0))))))) |
→ |
f1#(f1(g1(g1(g1(f1(f1(f1(x0)))))))) |
(9) |
f1#(f1(g1(g1(f1(g1(g1(y_0))))))) |
→ |
f1#(f1(g1(g1(y_0)))) |
(10) |
could be deleted.
1.1.1.1.1.1.1.1.1.1 Semantic Labeling Processor
The following interpretations form a
model
of the rules.
As carrier we take the set
{0,1}.
Symbols are labeled by the interpretation of their arguments using the interpretations
(modulo 2):
[f1(x1)] |
= |
1 + 1x1
|
[g1(x1)] |
= |
0 |
[f1#(x1)] |
= |
0 |
We obtain the set of labeled pairs
f1#1(f10(g10(g10(x)))) |
→ |
f1#1(f10(x)) |
(12) |
f1#1(f10(g10(g11(x)))) |
→ |
f1#0(f11(x)) |
(13) |
and the set of labeled rules:
f11(f10(g10(g10(x)))) |
→ |
g10(g10(g11(f10(f11(f10(x)))))) |
(14) |
f11(f10(g10(g11(x)))) |
→ |
g10(g10(g10(f11(f10(f11(x)))))) |
(15) |
Innermost rewriting w.r.t. the following left-hand sides is considered:
f11(f10(g10(g10(x0)))) |
f11(f10(g10(g11(x0)))) |
1.1.1.1.1.1.1.1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 1
component.