The rewrite relation of the following TRS is considered.
f(x,f(y,a)) | → | f(f(a,f(h(x),y)),a) | (1) |
The TRS is overlay and locally confluent:
10Hence, it suffices to show innermost termination in the following.
f#(x,f(y,a)) | → | f#(f(a,f(h(x),y)),a) | (2) |
f#(x,f(y,a)) | → | f#(a,f(h(x),y)) | (3) |
f#(x,f(y,a)) | → | f#(h(x),y) | (4) |
The dependency pairs are split into 1 component.
f#(x,f(y,a)) | → | f#(h(x),y) | (4) |
f#(x,f(y,a)) | → | f#(a,f(h(x),y)) | (3) |
f#(h(z0),f(x1,a)) | → | f#(h(h(z0)),x1) | (5) |
f#(a,f(x1,a)) | → | f#(h(a),x1) | (6) |
f#(a,f(x1,a)) | → | f#(a,f(h(a),x1)) | (7) |
f#(h(h(z0)),f(x1,a)) | → | f#(a,f(h(h(h(z0))),x1)) | (8) |
f#(h(a),f(x1,a)) | → | f#(a,f(h(h(a)),x1)) | (9) |
f#(h(h(z0)),f(x1,a)) | → | f#(h(h(h(z0))),x1) | (10) |
f#(h(a),f(x1,a)) | → | f#(h(h(a)),x1) | (11) |
f#(h(h(h(z0))),f(x1,a)) | → | f#(a,f(h(h(h(h(z0)))),x1)) | (12) |
f#(h(h(a)),f(x1,a)) | → | f#(a,f(h(h(h(a))),x1)) | (13) |
f#(a,f(f(y_0,a),a)) | → | f#(h(a),f(y_0,a)) | (14) |
f#(h(h(x0)),f(f(y_1,a),a)) | → | f#(h(h(h(x0))),f(y_1,a)) | (15) |
f#(h(a),f(f(y_0,a),a)) | → | f#(h(h(a)),f(y_0,a)) | (16) |
f#(h(a),f(f(f(y_1,a),a),a)) | → | f#(h(h(a)),f(f(y_1,a),a)) | (17) |
As carrier we take the set {0,1}. Symbols are labeled by the interpretation of their arguments using the interpretations (modulo 2):
[a] | = | 1 |
[f(x1, x2)] | = | 0 |
[h(x1)] | = | 0 |
[f#(x1, x2)] | = | 0 |
f#10(a,f01(x1,a)) | → | f#10(a,f00(h1(a),x1)) | (18) |
f#10(a,f11(x1,a)) | → | f#10(a,f01(h1(a),x1)) | (19) |
f#10(a,f01(f01(y_0,a),a)) | → | f#00(h1(a),f01(y_0,a)) | (20) |
f#10(a,f01(f11(y_0,a),a)) | → | f#00(h1(a),f11(y_0,a)) | (21) |
f#00(h1(a),f01(x1,a)) | → | f#10(a,f00(h0(h1(a)),x1)) | (22) |
f#00(h1(a),f11(x1,a)) | → | f#10(a,f01(h0(h1(a)),x1)) | (23) |
f#00(h0(h0(h0(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h0(z0)))),x1)) | (24) |
f#00(h0(h0(h0(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h0(z0)))),x1)) | (25) |
f#00(h0(h0(h1(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h1(z0)))),x1)) | (26) |
f#00(h0(h0(h1(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h1(z0)))),x1)) | (27) |
f#00(h0(h1(a)),f01(x1,a)) | → | f#10(a,f00(h0(h0(h1(a))),x1)) | (28) |
f#00(h0(h1(a)),f11(x1,a)) | → | f#10(a,f01(h0(h0(h1(a))),x1)) | (29) |
f#00(h1(a),f01(f01(y_0,a),a)) | → | f#00(h0(h1(a)),f01(y_0,a)) | (30) |
f#00(h1(a),f01(f11(y_0,a),a)) | → | f#00(h0(h1(a)),f11(y_0,a)) | (31) |
f#00(h1(a),f01(f01(f01(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f01(y_1,a),a)) | (32) |
f#00(h1(a),f01(f01(f11(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f11(y_1,a),a)) | (33) |
f#00(h0(h0(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f01(y_1,a)) | (34) |
f#00(h0(h0(x0)),f01(f11(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f11(y_1,a)) | (35) |
f#00(h0(h1(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f01(y_1,a)) | (36) |
f#00(h0(h1(x0)),f01(f11(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f11(y_1,a)) | (37) |
f00(x,f01(y,a)) | → | f01(f10(a,f00(h0(x),y)),a) | (38) |
f00(x,f11(y,a)) | → | f01(f10(a,f01(h0(x),y)),a) | (39) |
f10(x,f01(y,a)) | → | f01(f10(a,f00(h1(x),y)),a) | (40) |
f10(x,f11(y,a)) | → | f01(f10(a,f01(h1(x),y)),a) | (41) |
Innermost rewriting w.r.t. the following left-hand sides is considered:
f00(x0,f01(x1,a)) |
f00(x0,f11(x1,a)) |
f10(x0,f01(x1,a)) |
f10(x0,f11(x1,a)) |
The dependency pairs are split into 1 component.
f#10(a,f01(x1,a)) | → | f#10(a,f00(h1(a),x1)) | (18) |
f#10(a,f01(f01(y_0,a),a)) | → | f#00(h1(a),f01(y_0,a)) | (20) |
f#00(h1(a),f01(x1,a)) | → | f#10(a,f00(h0(h1(a)),x1)) | (22) |
f#00(h1(a),f01(f01(y_0,a),a)) | → | f#00(h0(h1(a)),f01(y_0,a)) | (30) |
f#00(h0(h1(a)),f01(x1,a)) | → | f#10(a,f00(h0(h0(h1(a))),x1)) | (28) |
f#00(h0(h1(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f01(y_1,a)) | (36) |
f#00(h0(h0(h1(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h1(z0)))),x1)) | (26) |
f#00(h0(h0(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f01(y_1,a)) | (34) |
f#00(h0(h0(h0(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h0(z0)))),x1)) | (24) |
f#00(h0(h0(x0)),f01(f11(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f11(y_1,a)) | (35) |
f#00(h0(h0(h0(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h0(z0)))),x1)) | (25) |
f#00(h0(h1(x0)),f01(f11(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f11(y_1,a)) | (37) |
f#00(h0(h0(h1(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h1(z0)))),x1)) | (27) |
f#00(h1(a),f01(f11(y_0,a),a)) | → | f#00(h0(h1(a)),f11(y_0,a)) | (31) |
f#00(h0(h1(a)),f11(x1,a)) | → | f#10(a,f01(h0(h0(h1(a))),x1)) | (29) |
f#00(h1(a),f01(f01(f01(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f01(y_1,a),a)) | (32) |
f#00(h1(a),f01(f01(f11(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f11(y_1,a),a)) | (33) |
[f00(x1, x2)] | = | 1 · x1 + 1 · x2 |
[f01(x1, x2)] | = | 1 · x1 + 1 · x2 |
[a] | = | 0 |
[f10(x1, x2)] | = | 1 · x1 + 1 · x2 |
[h0(x1)] | = | 1 · x1 |
[f11(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[h1(x1)] | = | 1 · x1 |
[f#10(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[f#00(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
f#00(h0(h0(h0(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h0(z0)))),x1)) | (25) |
f#00(h0(h0(h1(z0))),f11(x1,a)) | → | f#10(a,f01(h0(h0(h0(h1(z0)))),x1)) | (27) |
f#00(h0(h1(a)),f11(x1,a)) | → | f#10(a,f01(h0(h0(h1(a))),x1)) | (29) |
f00(x,f11(y,a)) | → | f01(f10(a,f01(h0(x),y)),a) | (39) |
f10(x,f11(y,a)) | → | f01(f10(a,f01(h1(x),y)),a) | (41) |
The dependency pairs are split into 1 component.
f#10(a,f01(x1,a)) | → | f#10(a,f00(h1(a),x1)) | (18) |
f#10(a,f01(f01(y_0,a),a)) | → | f#00(h1(a),f01(y_0,a)) | (20) |
f#00(h1(a),f01(x1,a)) | → | f#10(a,f00(h0(h1(a)),x1)) | (22) |
f#00(h1(a),f01(f01(y_0,a),a)) | → | f#00(h0(h1(a)),f01(y_0,a)) | (30) |
f#00(h0(h1(a)),f01(x1,a)) | → | f#10(a,f00(h0(h0(h1(a))),x1)) | (28) |
f#00(h0(h1(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f01(y_1,a)) | (36) |
f#00(h0(h0(h1(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h1(z0)))),x1)) | (26) |
f#00(h0(h0(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f01(y_1,a)) | (34) |
f#00(h0(h0(h0(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h0(z0)))),x1)) | (24) |
f#00(h1(a),f01(f01(f01(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f01(y_1,a),a)) | (32) |
f#00(h1(a),f01(f01(f11(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f11(y_1,a),a)) | (33) |
[f00(x1, x2)] | = | 1 · x1 + 1 · x2 |
[f01(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[a] | = | 0 |
[f10(x1, x2)] | = | 1 · x1 + 1 · x2 |
[h0(x1)] | = | 1 · x1 |
[h1(x1)] | = | 1 · x1 |
[f#10(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[f#00(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[f11(x1, x2)] | = | 1 · x1 + 1 · x2 |
f#10(a,f01(x1,a)) | → | f#10(a,f00(h1(a),x1)) | (18) |
f#10(a,f01(f01(y_0,a),a)) | → | f#00(h1(a),f01(y_0,a)) | (20) |
f#00(h1(a),f01(x1,a)) | → | f#10(a,f00(h0(h1(a)),x1)) | (22) |
f#00(h1(a),f01(f01(y_0,a),a)) | → | f#00(h0(h1(a)),f01(y_0,a)) | (30) |
f#00(h0(h1(a)),f01(x1,a)) | → | f#10(a,f00(h0(h0(h1(a))),x1)) | (28) |
f#00(h0(h1(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h1(x0))),f01(y_1,a)) | (36) |
f#00(h0(h0(h1(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h1(z0)))),x1)) | (26) |
f#00(h0(h0(x0)),f01(f01(y_1,a),a)) | → | f#00(h0(h0(h0(x0))),f01(y_1,a)) | (34) |
f#00(h0(h0(h0(z0))),f01(x1,a)) | → | f#10(a,f00(h0(h0(h0(h0(z0)))),x1)) | (24) |
f#00(h1(a),f01(f01(f01(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f01(y_1,a),a)) | (32) |
f#00(h1(a),f01(f01(f11(y_1,a),a),a)) | → | f#00(h0(h1(a)),f01(f11(y_1,a),a)) | (33) |
There are no pairs anymore.