Termination of the rewrite relation of the following TRS is considered.
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
f(g(x,y)) | → | g(y,g(f(f(x)),a)) |
g(x,g(y,g(x,y))) | → | g(a,g(x,g(y,b))) |
g#(c,g(c,x)) | → | g#(d,x) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(d,g(d,x)) | → | g#(e,x) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
f#(g(x,y)) | → | f#(x) |
f#(g(x,y)) | → | f#(f(x)) |
f#(g(x,y)) | → | g#(f(f(x)),a) |
f#(g(x,y)) | → | g#(y,g(f(f(x)),a)) |
g#(x,g(y,g(x,y))) | → | g#(y,b) |
g#(x,g(y,g(x,y))) | → | g#(x,g(y,b)) |
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
The dependency pairs are split into 2 components.
f#(g(x,y)) | → | f#(f(x)) |
f#(g(x,y)) | → | f#(x) |
[ f #(x1)] | = |
|
||||||||||
[ f (x1)] | = |
|
||||||||||
[ g (x1, x2)] | = |
|
||||||||||
[ a ] | = |
|
||||||||||
[ b ] | = |
|
||||||||||
[ c ] | = |
|
||||||||||
[ d ] | = |
|
||||||||||
[ e ] | = |
|
f#(g(x,y)) | → | f#(x) |
There are no pairs anymore.
g#(c,g(c,x)) | → | g#(d,x) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(d,g(d,x)) | → | g#(e,x) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(x,g(y,g(x,y))) | → | g#(y,b) |
g#(x,g(y,g(x,y))) | → | g#(x,g(y,b)) |
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
[g(x1, x2)] | = | x1 + x2 |
[g#(x1, x2)] | = | x1 + x2 |
[a] | = | 0 |
[b] | = | 0 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
g(x,g(y,g(x,y))) | → | g(a,g(x,g(y,b))) |
g#(c,g(c,x)) | → | g#(d,x) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(d,g(d,x)) | → | g#(e,x) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(x,g(y,g(x,y))) | → | g#(y,b) |
g#(x,g(y,g(x,y))) | → | g#(x,g(y,b)) |
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
g(x,g(y,g(x,y))) | → | g(a,g(x,g(y,b))) |
The dependency pairs are split into 1 component.
g#(d,g(d,x)) | → | g#(e,x) |
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
g#(x,g(y,g(x,y))) | → | g#(x,g(y,b)) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(c,g(c,x)) | → | g#(d,x) |
[g#(x1, x2)] | = |
|
||||||||||||
[b] | = |
|
||||||||||||
[a] | = |
|
||||||||||||
[d] | = |
|
||||||||||||
[e] | = |
|
||||||||||||
[g(x1, x2)] | = |
|
||||||||||||
[c] | = |
|
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
g(x,g(y,g(x,y))) | → | g(a,g(x,g(y,b))) |
g#(d,g(d,x)) | → | g#(e,x) |
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(c,g(c,x)) | → | g#(d,x) |
The dependency pairs are split into 2 components.
g#(d,g(d,x)) | → | g#(e,x) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g#(e,g(e,x)) | → | g#(c,x) |
g#(c,g(c,x)) | → | g#(d,x) |
[g#(x1, x2)] | = |
|
||||||||||||
[b] | = |
|
||||||||||||
[a] | = |
|
||||||||||||
[d] | = |
|
||||||||||||
[e] | = |
|
||||||||||||
[g(x1, x2)] | = |
|
||||||||||||
[c] | = |
|
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(x,g(y,g(x,y))) | → | g(a,g(x,g(y,b))) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
As carrier we take the set {0,1}. Symbols are labeled by the interpretation of their arguments using the interpretations (modulo 2):
[g(x1, x2)] | = | 0 |
[a] | = | 0 |
[b] | = | 1 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g#00(e,g00(e,x)) | → | g#00(d,g00(c,x)) |
g#00(e,g01(e,x)) | → | g#00(d,g01(c,x)) |
g#00(d,g00(d,x)) | → | g#00(c,g00(e,x)) |
g#00(d,g01(d,x)) | → | g#00(c,g01(e,x)) |
g#00(c,g00(c,x)) | → | g#00(e,g00(d,x)) |
g#00(c,g01(c,x)) | → | g#00(e,g01(d,x)) |
g00(e,g00(e,x)) | → | g00(d,g00(c,x)) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g00(d,x)) | → | g00(c,g00(e,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g00(c,x)) | → | g00(e,g00(d,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g00(x,g00(y,g00(x,y))) | → | g00(a,g00(x,g01(y,b))) |
g10(x,g00(y,g10(x,y))) | → | g00(a,g10(x,g01(y,b))) |
g00(x,g10(y,g01(x,y))) | → | g00(a,g00(x,g11(y,b))) |
g10(x,g10(y,g11(x,y))) | → | g00(a,g10(x,g11(y,b))) |
The dependency pairs are split into 1 component.
g#00(e,g00(e,x)) | → | g#00(d,g00(c,x)) |
g#00(d,g00(d,x)) | → | g#00(c,g00(e,x)) |
g#00(c,g00(c,x)) | → | g#00(e,g00(d,x)) |
[g#00(x1, x2)] | = | x1 + x2 |
[g00(x1, x2)] | = | x1 + x2 |
[g01(x1, x2)] | = | x1 + x2 |
[g10(x1, x2)] | = | x1 + x2 |
[g11(x1, x2)] | = | x1 + x2 |
[a] | = | 0 |
[b] | = | 0 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g00(e,g00(e,x)) | → | g00(d,g00(c,x)) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g00(d,x)) | → | g00(c,g00(e,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g00(c,x)) | → | g00(e,g00(d,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g00(x,g00(y,g00(x,y))) | → | g00(a,g00(x,g01(y,b))) |
g00(x,g10(y,g01(x,y))) | → | g00(a,g00(x,g11(y,b))) |
g#00(e,g00(e,x)) | → | g#00(d,g00(c,x)) |
g#00(d,g00(d,x)) | → | g#00(c,g00(e,x)) |
g#00(c,g00(c,x)) | → | g#00(e,g00(d,x)) |
g00(e,g00(e,x)) | → | g00(d,g00(c,x)) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g00(d,x)) | → | g00(c,g00(e,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g00(c,x)) | → | g00(e,g00(d,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g00(x,g00(y,g00(x,y))) | → | g00(a,g00(x,g01(y,b))) |
[g#00(x1, x2)] | = | x1 + x2 |
[g00(x1, x2)] | = | 1 + x1 + x2 |
[g01(x1, x2)] | = | x1 + x2 |
[a] | = | 0 |
[b] | = | 0 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g#00(e,g00(e,x)) | → | g#00(d,g00(c,x)) |
g#00(d,g00(d,x)) | → | g#00(c,g00(e,x)) |
g#00(c,g00(c,x)) | → | g#00(e,g00(d,x)) |
g00(e,g00(e,x)) | → | g00(d,g00(c,x)) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g00(d,x)) | → | g00(c,g00(e,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g00(c,x)) | → | g00(e,g00(d,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g#(e,g(e,x)) | → | g#(d,g(c,x)) |
g#(d,g(d,x)) | → | g#(c,g(e,x)) |
g#(c,g(c,x)) | → | g#(e,g(d,x)) |
g(c,g(c,x)) | → | g(e,g(d,x)) |
g(d,g(d,x)) | → | g(c,g(e,x)) |
g(e,g(e,x)) | → | g(d,g(c,x)) |
We uncurry the binary symbol g in combination with the following symbol map which also determines the applicative arities of these symbols.
e | is mapped to | e, | e1(x1) |
c | is mapped to | c, | c1(x1) |
d | is mapped to | d, | d1(x1) |
g#(x1, x2) | is mapped to | G(x1, x2) |
G(e,e1(x)) | → | G(d,c1(x)) |
G(d,d1(x)) | → | G(c,e1(x)) |
G(c,c1(x)) | → | G(e,d1(x)) |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
g(c,x) | → | c1(x) |
g(d,x) | → | d1(x) |
g(e,x) | → | e1(x) |
[G(x1, x2)] | = | x1 + x2 |
[g(x1, x2)] | = | x1 + x2 |
[e1(x1)] | = | x1 |
[c1(x1)] | = | x1 |
[d1(x1)] | = | x1 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
G(e,e1(x)) | → | G(d,c1(x)) |
G(d,d1(x)) | → | G(c,e1(x)) |
G(c,c1(x)) | → | G(e,d1(x)) |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
We uncurry the binary symbol G in combination with the following symbol map which also determines the applicative arities of these symbols.
e | is mapped to | e, | E(x1) |
c | is mapped to | c, | C(x1) |
d | is mapped to | d, | D(x1) |
c1(x1) | is mapped to | c1(x1) | |
d1(x1) | is mapped to | d1(x1) | |
e1(x1) | is mapped to | e1(x1) |
C(c1(x)) | → | E(d1(x)) |
D(d1(x)) | → | C(e1(x)) |
E(e1(x)) | → | D(c1(x)) |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
G(c,x) | → | C(x) |
G(d,x) | → | D(x) |
G(e,x) | → | E(x) |
[G(x1, x2)] | = | x1 + x2 |
[g(x1, x2)] | = | x1 + x2 |
[E(x1)] | = | x1 |
[D(x1)] | = | x1 |
[C(x1)] | = | x1 |
[e1(x1)] | = | x1 |
[c1(x1)] | = | x1 |
[d1(x1)] | = | x1 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
C(c1(x)) | → | E(d1(x)) |
D(d1(x)) | → | C(e1(x)) |
E(e1(x)) | → | D(c1(x)) |
c1(c1(x)) | → | e1(d1(x)) |
d1(d1(x)) | → | c1(e1(x)) |
e1(e1(x)) | → | d1(c1(x)) |
[e1(x1)] | = |
|
||||||||||||||||||||||||||||||
[d1(x1)] | = |
|
||||||||||||||||||||||||||||||
[c1(x1)] | = |
|
||||||||||||||||||||||||||||||
[E(x1)] | = |
|
||||||||||||||||||||||||||||||
[D(x1)] | = |
|
||||||||||||||||||||||||||||||
[C(x1)] | = |
|
There are no pairs anymore.
g#(x,g(y,g(x,y))) | → | g#(a,g(x,g(y,b))) |
As carrier we take the set {0,1}. Symbols are labeled by the interpretation of their arguments using the interpretations (modulo 2):
[g(x1, x2)] | = | 0 |
[a] | = | 0 |
[b] | = | 1 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g#00(x,g00(y,g00(x,y))) | → | g#00(a,g00(x,g01(y,b))) |
g#10(x,g00(y,g10(x,y))) | → | g#00(a,g10(x,g01(y,b))) |
g#00(x,g10(y,g01(x,y))) | → | g#00(a,g00(x,g11(y,b))) |
g#10(x,g10(y,g11(x,y))) | → | g#00(a,g10(x,g11(y,b))) |
g00(e,g00(e,x)) | → | g00(d,g00(c,x)) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g00(d,x)) | → | g00(c,g00(e,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g00(c,x)) | → | g00(e,g00(d,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g00(x,g00(y,g00(x,y))) | → | g00(a,g00(x,g01(y,b))) |
g10(x,g00(y,g10(x,y))) | → | g00(a,g10(x,g01(y,b))) |
g00(x,g10(y,g01(x,y))) | → | g00(a,g00(x,g11(y,b))) |
g10(x,g10(y,g11(x,y))) | → | g00(a,g10(x,g11(y,b))) |
The dependency pairs are split into 1 component.
g#00(x,g00(y,g00(x,y))) | → | g#00(a,g00(x,g01(y,b))) |
[g#00(x1, x2)] | = | x1 + x2 |
[g00(x1, x2)] | = | x1 + x2 |
[g01(x1, x2)] | = | x1 + x2 |
[a] | = | 0 |
[b] | = | 0 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
g#00(x,g00(y,g00(x,y))) | → | g#00(a,g00(x,g01(y,b))) |
g00(e,g01(e,x)) | → | g00(d,g01(c,x)) |
g00(d,g01(d,x)) | → | g00(c,g01(e,x)) |
g00(c,g01(c,x)) | → | g00(e,g01(d,x)) |
[g#00(x1, x2)] | = | x1 + x2 |
[g00(x1, x2)] | = | 1 + x1 + x2 |
[g01(x1, x2)] | = | x1 + x2 |
[a] | = | 0 |
[b] | = | 0 |
[c] | = | 0 |
[d] | = | 0 |
[e] | = | 0 |
There are no pairs anymore.