The rewrite relation of the following TRS is considered.
s(s(0)) | → | f(0) | (1) |
f(0) | → | 0 | (2) |
s(s(s(0))) | → | f(s(0)) | (3) |
f(s(0)) | → | s(0) | (4) |
s(s(s(s(s(s(s(s(0)))))))) | → | f(s(s(0))) | (5) |
f(s(s(0))) | → | s(s(s(s(s(s(0)))))) | (6) |
g(x) | → | h(x,x) | (7) |
s(x) | → | h(x,0) | (8) |
s(x) | → | h(0,x) | (9) |
f(g(x)) | → | g(g(f(x))) | (10) |
g(s(x)) | → | s(s(g(x))) | (11) |
h(f(x),g(x)) | → | f(s(x)) | (12) |
s#(s(0)) | → | f#(0) | (13) |
s#(s(s(0))) | → | f#(s(0)) | (14) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(s(s(s(s(0)))))) | (16) |
f#(s(s(0))) | → | s#(s(s(s(s(0))))) | (17) |
f#(s(s(0))) | → | s#(s(s(s(0)))) | (18) |
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
g#(x) | → | h#(x,x) | (20) |
s#(x) | → | h#(x,0) | (21) |
s#(x) | → | h#(0,x) | (22) |
f#(g(x)) | → | g#(g(f(x))) | (23) |
f#(g(x)) | → | g#(f(x)) | (24) |
f#(g(x)) | → | f#(x) | (25) |
g#(s(x)) | → | s#(s(g(x))) | (26) |
g#(s(x)) | → | s#(g(x)) | (27) |
g#(s(x)) | → | g#(x) | (28) |
h#(f(x),g(x)) | → | f#(s(x)) | (29) |
h#(f(x),g(x)) | → | s#(x) | (30) |
The dependency pairs are split into 1 component.
s#(s(s(0))) | → | f#(s(0)) | (14) |
f#(s(s(0))) | → | s#(s(s(s(s(s(0)))))) | (16) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(s(s(s(0))))) | (17) |
f#(s(s(0))) | → | s#(s(s(s(0)))) | (18) |
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
f#(g(x)) | → | g#(g(f(x))) | (23) |
g#(x) | → | h#(x,x) | (20) |
h#(f(x),g(x)) | → | f#(s(x)) | (29) |
f#(g(x)) | → | g#(f(x)) | (24) |
g#(s(x)) | → | s#(s(g(x))) | (26) |
g#(s(x)) | → | s#(g(x)) | (27) |
g#(s(x)) | → | g#(x) | (28) |
f#(g(x)) | → | f#(x) | (25) |
h#(f(x),g(x)) | → | s#(x) | (30) |
[f#(x1)] | = | -1 + x1 |
[g#(x1)] | = | -2 |
[s#(x1)] | = | -2 |
[s(x1)] | = | 0 |
[h(x1, x2)] | = | 0 |
[0] | = | 0 |
[f(x1)] | = | 2 · x1 |
[g(x1)] | = | 2 + x1 |
[h#(x1, x2)] | = | 0 |
f#(g(x)) | → | g#(g(f(x))) | (23) |
f#(g(x)) | → | g#(f(x)) | (24) |
f#(g(x)) | → | f#(x) | (25) |
The dependency pairs are split into 2 components.
g#(s(x)) | → | g#(x) | (28) |
[s(x1)] | = | 1 · x1 |
[g#(x1)] | = | 1 · x1 |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
g#(s(x)) | → | g#(x) | (28) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
f#(s(s(0))) | → | s#(s(s(s(s(s(0)))))) | (16) |
s#(s(s(0))) | → | f#(s(0)) | (14) |
f#(s(s(0))) | → | s#(s(s(s(s(0))))) | (17) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(s(s(0)))) | (18) |
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
[f#(x1)] | = |
|
|||||||||||||||||||
[s(x1)] | = |
|
|||||||||||||||||||
[0] | = |
|
|||||||||||||||||||
[s#(x1)] | = |
|
|||||||||||||||||||
[h(x1, x2)] | = |
|
|||||||||||||||||||
[f(x1)] | = |
|
|||||||||||||||||||
[g(x1)] | = |
|
s#(s(s(0))) | → | f#(s(0)) | (14) |
f#(s(s(0))) | → | s#(h(s(s(s(s(0)))),0)) | (31) |
f#(s(s(0))) | → | s#(h(0,s(s(s(s(0)))))) | (32) |
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(f(0))))) | (38) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
The dependency pairs are split into 1 component.
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(s(s(s(0))))) | (17) |
f#(s(s(0))) | → | s#(s(s(s(0)))) | (18) |
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(f(0))))) | (38) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
f#(s(s(0))) | → | s#(h(s(s(s(0))),0)) | (42) |
f#(s(s(0))) | → | s#(h(0,s(s(s(0))))) | (43) |
f#(s(s(0))) | → | s#(s(f(s(0)))) | (44) |
f#(s(s(0))) | → | s#(s(h(s(s(0)),0))) | (45) |
f#(s(s(0))) | → | s#(s(h(0,s(s(0))))) | (46) |
f#(s(s(0))) | → | s#(s(s(f(0)))) | (47) |
f#(s(s(0))) | → | s#(s(s(h(s(0),0)))) | (48) |
f#(s(s(0))) | → | s#(s(s(h(0,s(0))))) | (49) |
f#(s(s(0))) | → | s#(s(s(s(h(0,0))))) | (50) |
The dependency pairs are split into 1 component.
f#(s(s(0))) | → | s#(s(s(s(0)))) | (18) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(f(0))))) | (38) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
f#(s(s(0))) | → | s#(s(f(s(0)))) | (44) |
f#(s(s(0))) | → | s#(s(h(s(s(0)),0))) | (45) |
f#(s(s(0))) | → | s#(s(h(0,s(s(0))))) | (46) |
f#(s(s(0))) | → | s#(s(s(f(0)))) | (47) |
f#(s(s(0))) | → | s#(s(s(h(s(0),0)))) | (48) |
f#(s(s(0))) | → | s#(s(s(h(0,s(0))))) | (49) |
f#(s(s(0))) | → | s#(s(s(s(h(0,0))))) | (50) |
f#(s(s(0))) | → | s#(f(s(0))) | (51) |
f#(s(s(0))) | → | s#(h(s(s(0)),0)) | (52) |
f#(s(s(0))) | → | s#(h(0,s(s(0)))) | (53) |
f#(s(s(0))) | → | s#(s(f(0))) | (54) |
f#(s(s(0))) | → | s#(s(h(s(0),0))) | (55) |
f#(s(s(0))) | → | s#(s(h(0,s(0)))) | (56) |
f#(s(s(0))) | → | s#(s(s(h(0,0)))) | (57) |
The dependency pairs are split into 1 component.
f#(s(s(0))) | → | s#(s(s(0))) | (19) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(f(0))))) | (38) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
f#(s(s(0))) | → | s#(s(f(s(0)))) | (44) |
f#(s(s(0))) | → | s#(s(h(s(s(0)),0))) | (45) |
f#(s(s(0))) | → | s#(s(h(0,s(s(0))))) | (46) |
f#(s(s(0))) | → | s#(s(s(f(0)))) | (47) |
f#(s(s(0))) | → | s#(s(s(h(s(0),0)))) | (48) |
f#(s(s(0))) | → | s#(s(s(h(0,s(0))))) | (49) |
f#(s(s(0))) | → | s#(s(s(s(h(0,0))))) | (50) |
f#(s(s(0))) | → | s#(f(s(0))) | (51) |
f#(s(s(0))) | → | s#(s(f(0))) | (54) |
f#(s(s(0))) | → | s#(s(h(s(0),0))) | (55) |
f#(s(s(0))) | → | s#(s(h(0,s(0)))) | (56) |
f#(s(s(0))) | → | s#(s(s(h(0,0)))) | (57) |
f#(s(s(0))) | → | s#(f(0)) | (58) |
f#(s(s(0))) | → | s#(h(s(0),0)) | (59) |
f#(s(s(0))) | → | s#(h(0,s(0))) | (60) |
f#(s(s(0))) | → | s#(s(h(0,0))) | (61) |
The dependency pairs are split into 1 component.
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(f(0))))) | (38) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
f#(s(s(0))) | → | s#(s(f(s(0)))) | (44) |
f#(s(s(0))) | → | s#(s(h(s(s(0)),0))) | (45) |
f#(s(s(0))) | → | s#(s(h(0,s(s(0))))) | (46) |
f#(s(s(0))) | → | s#(s(s(f(0)))) | (47) |
f#(s(s(0))) | → | s#(s(s(h(s(0),0)))) | (48) |
f#(s(s(0))) | → | s#(s(s(h(0,s(0))))) | (49) |
f#(s(s(0))) | → | s#(s(s(s(h(0,0))))) | (50) |
f#(s(s(0))) | → | s#(f(s(0))) | (51) |
f#(s(s(0))) | → | s#(s(f(0))) | (54) |
f#(s(s(0))) | → | s#(s(h(s(0),0))) | (55) |
f#(s(s(0))) | → | s#(s(h(0,s(0)))) | (56) |
f#(s(s(0))) | → | s#(s(s(h(0,0)))) | (57) |
f#(s(s(0))) | → | s#(f(0)) | (58) |
f#(s(s(0))) | → | s#(s(h(0,0))) | (61) |
[f#(x1)] | = | 2 + 2 · x1 |
[s#(x1)] | = | 2 + 2 · x1 |
[s(x1)] | = | 1 |
[h(x1, x2)] | = | 1 |
[0] | = | 0 |
[f(x1)] | = | x1 |
[g(x1)] | = | 1 |
f#(s(s(0))) | → | s#(f(0)) | (58) |
[f#(x1)] | = |
|
|||||||||||||||||||
[s(x1)] | = |
|
|||||||||||||||||||
[0] | = |
|
|||||||||||||||||||
[s#(x1)] | = |
|
|||||||||||||||||||
[h(x1, x2)] | = |
|
|||||||||||||||||||
[f(x1)] | = |
|
|||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(f(0))) | (54) |
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(h(0,s(s(s(0)))))) | (34) |
f#(s(s(0))) | → | s#(s(h(0,s(s(0))))) | (46) |
f#(s(s(0))) | → | s#(f(s(0))) | (51) |
f#(s(s(0))) | → | s#(s(h(0,s(0)))) | (56) |
f#(s(s(0))) | → | s#(s(h(0,0))) | (61) |
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(s(s(s(h(0,0)))))) | (41) |
f#(s(s(0))) | → | s#(s(s(s(h(0,0))))) | (50) |
f#(s(s(0))) | → | s#(s(s(h(0,0)))) | (57) |
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(s(h(0,s(s(0)))))) | (37) |
f#(s(s(0))) | → | s#(s(s(s(h(0,s(0)))))) | (40) |
f#(s(s(0))) | → | s#(s(s(h(0,s(0))))) | (49) |
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(h(s(s(s(0))),0))) | (33) |
f#(s(s(0))) | → | s#(s(s(h(s(s(0)),0)))) | (36) |
f#(s(s(0))) | → | s#(s(s(s(h(s(0),0))))) | (39) |
f#(s(s(0))) | → | s#(s(f(s(0)))) | (44) |
f#(s(s(0))) | → | s#(s(h(s(s(0)),0))) | (45) |
f#(s(s(0))) | → | s#(s(s(f(0)))) | (47) |
f#(s(s(0))) | → | s#(s(s(h(s(0),0)))) | (48) |
f#(s(s(0))) | → | s#(s(h(s(0),0))) | (55) |
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
f#(s(s(0))) | → | s#(s(s(f(s(0))))) | (35) |
[s#(x1)] | = |
|
||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||
[f#(x1)] | = |
|
||||||||||||||||||||||||||||||
[f(x1)] | = |
|
||||||||||||||||||||||||||||||
[h(x1, x2)] | = |
|
||||||||||||||||||||||||||||||
[g(x1)] | = |
|
s#(s(s(s(s(s(s(s(0)))))))) | → | f#(s(s(0))) | (15) |
There are no rules.
There are no pairs anymore.