The rewrite relation of the following TRS is considered.
if(true,x,y) | → | x | (1) |
if(false,x,y) | → | y | (2) |
eq(0,0) | → | true | (3) |
eq(0,s(x)) | → | false | (4) |
eq(s(x),0) | → | false | (5) |
eq(s(x),s(y)) | → | eq(x,y) | (6) |
app(nil,l) | → | l | (7) |
app(cons(x,l1),l2) | → | cons(x,app(l1,l2)) | (8) |
app(app(l1,l2),l3) | → | app(l1,app(l2,l3)) | (9) |
mem(x,nil) | → | false | (10) |
mem(x,cons(y,l)) | → | ifmem(eq(x,y),x,l) | (11) |
ifmem(true,x,l) | → | true | (12) |
ifmem(false,x,l) | → | mem(x,l) | (13) |
inter(x,nil) | → | nil | (14) |
inter(nil,x) | → | nil | (15) |
inter(app(l1,l2),l3) | → | app(inter(l1,l3),inter(l2,l3)) | (16) |
inter(l1,app(l2,l3)) | → | app(inter(l1,l2),inter(l1,l3)) | (17) |
inter(cons(x,l1),l2) | → | ifinter(mem(x,l2),x,l1,l2) | (18) |
inter(l1,cons(x,l2)) | → | ifinter(mem(x,l1),x,l2,l1) | (19) |
ifinter(true,x,l1,l2) | → | cons(x,inter(l1,l2)) | (20) |
ifinter(false,x,l1,l2) | → | inter(l1,l2) | (21) |
ifmem#(false,x,l) | → | mem#(x,l) | (22) |
mem#(x,cons(y,l)) | → | eq#(x,y) | (23) |
ifinter#(false,x,l1,l2) | → | inter#(l1,l2) | (24) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l2) | (25) |
inter#(l1,cons(x,l2)) | → | ifinter#(mem(x,l1),x,l2,l1) | (26) |
inter#(l1,cons(x,l2)) | → | mem#(x,l1) | (27) |
inter#(app(l1,l2),l3) | → | app#(inter(l1,l3),inter(l2,l3)) | (28) |
ifinter#(true,x,l1,l2) | → | inter#(l1,l2) | (29) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l3) | (30) |
mem#(x,cons(y,l)) | → | ifmem#(eq(x,y),x,l) | (31) |
app#(cons(x,l1),l2) | → | app#(l1,l2) | (32) |
inter#(cons(x,l1),l2) | → | mem#(x,l2) | (33) |
inter#(app(l1,l2),l3) | → | inter#(l2,l3) | (34) |
app#(app(l1,l2),l3) | → | app#(l1,app(l2,l3)) | (35) |
eq#(s(x),s(y)) | → | eq#(x,y) | (36) |
inter#(l1,app(l2,l3)) | → | app#(inter(l1,l2),inter(l1,l3)) | (37) |
inter#(app(l1,l2),l3) | → | inter#(l1,l3) | (38) |
app#(app(l1,l2),l3) | → | app#(l2,l3) | (39) |
inter#(cons(x,l1),l2) | → | ifinter#(mem(x,l2),x,l1,l2) | (40) |
The dependency pairs are split into 4 components.
inter#(cons(x,l1),l2) | → | ifinter#(mem(x,l2),x,l1,l2) | (40) |
inter#(app(l1,l2),l3) | → | inter#(l1,l3) | (38) |
inter#(app(l1,l2),l3) | → | inter#(l2,l3) | (34) |
inter#(l1,cons(x,l2)) | → | ifinter#(mem(x,l1),x,l2,l1) | (26) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l2) | (25) |
ifinter#(false,x,l1,l2) | → | inter#(l1,l2) | (24) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l3) | (30) |
ifinter#(true,x,l1,l2) | → | inter#(l1,l2) | (29) |
[mem(x1, x2)] | = | x2 + 2 |
[s(x1)] | = | 1 |
[ifinter(x1,...,x4)] | = | 0 |
[eq(x1, x2)] | = | 6 |
[false] | = | 1 |
[mem#(x1, x2)] | = | 0 |
[ifmem(x1, x2, x3)] | = | x1 + x2 + 0 |
[ifinter#(x1,...,x4)] | = | x3 + x4 + 1 |
[true] | = | 7 |
[ifmem#(x1, x2, x3)] | = | 0 |
[eq#(x1, x2)] | = | 0 |
[if(x1, x2, x3)] | = | 0 |
[0] | = | 1 |
[nil] | = | 28958 |
[app#(x1, x2)] | = | 0 |
[cons(x1, x2)] | = | x2 + 2 |
[if#(x1, x2, x3)] | = | 0 |
[inter(x1, x2)] | = | 0 |
[inter#(x1, x2)] | = | x1 + x2 + 0 |
[app(x1, x2)] | = | x1 + x2 + 1 |
inter#(cons(x,l1),l2) | → | ifinter#(mem(x,l2),x,l1,l2) | (40) |
inter#(app(l1,l2),l3) | → | inter#(l1,l3) | (38) |
inter#(app(l1,l2),l3) | → | inter#(l2,l3) | (34) |
inter#(l1,cons(x,l2)) | → | ifinter#(mem(x,l1),x,l2,l1) | (26) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l2) | (25) |
ifinter#(false,x,l1,l2) | → | inter#(l1,l2) | (24) |
inter#(l1,app(l2,l3)) | → | inter#(l1,l3) | (30) |
ifinter#(true,x,l1,l2) | → | inter#(l1,l2) | (29) |
The dependency pairs are split into 0 components.
app#(app(l1,l2),l3) | → | app#(l2,l3) | (39) |
app#(app(l1,l2),l3) | → | app#(l1,app(l2,l3)) | (35) |
app#(cons(x,l1),l2) | → | app#(l1,l2) | (32) |
[mem(x1, x2)] | = | x2 + 2 |
[s(x1)] | = | 1 |
[ifinter(x1,...,x4)] | = | 0 |
[eq(x1, x2)] | = | 38554 |
[false] | = | 1 |
[mem#(x1, x2)] | = | 0 |
[ifmem(x1, x2, x3)] | = | x1 + x2 + 0 |
[ifinter#(x1,...,x4)] | = | 1 |
[true] | = | 38555 |
[ifmem#(x1, x2, x3)] | = | 0 |
[eq#(x1, x2)] | = | 0 |
[if(x1, x2, x3)] | = | 0 |
[0] | = | 1 |
[nil] | = | 38139 |
[app#(x1, x2)] | = | x1 + 0 |
[cons(x1, x2)] | = | x2 + 38551 |
[if#(x1, x2, x3)] | = | 0 |
[inter(x1, x2)] | = | 0 |
[inter#(x1, x2)] | = | 0 |
[app(x1, x2)] | = | x1 + x2 + 31755 |
app(cons(x,l1),l2) | → | cons(x,app(l1,l2)) | (8) |
app(nil,l) | → | l | (7) |
app(app(l1,l2),l3) | → | app(l1,app(l2,l3)) | (9) |
app#(app(l1,l2),l3) | → | app#(l2,l3) | (39) |
app#(app(l1,l2),l3) | → | app#(l1,app(l2,l3)) | (35) |
app#(cons(x,l1),l2) | → | app#(l1,l2) | (32) |
The dependency pairs are split into 0 components.
mem#(x,cons(y,l)) | → | ifmem#(eq(x,y),x,l) | (31) |
ifmem#(false,x,l) | → | mem#(x,l) | (22) |
[mem(x1, x2)] | = | x2 + 2 |
[s(x1)] | = | 1 |
[ifinter(x1,...,x4)] | = | 0 |
[eq(x1, x2)] | = | 5 |
[false] | = | 1 |
[mem#(x1, x2)] | = | x1 + x2 + 0 |
[ifmem(x1, x2, x3)] | = | x1 + x2 + 0 |
[ifinter#(x1,...,x4)] | = | 1 |
[true] | = | 6 |
[ifmem#(x1, x2, x3)] | = | x2 + x3 + 1 |
[eq#(x1, x2)] | = | 0 |
[if(x1, x2, x3)] | = | 0 |
[0] | = | 1 |
[nil] | = | 1 |
[app#(x1, x2)] | = | 0 |
[cons(x1, x2)] | = | x2 + 2 |
[if#(x1, x2, x3)] | = | 0 |
[inter(x1, x2)] | = | 0 |
[inter#(x1, x2)] | = | 0 |
[app(x1, x2)] | = | x1 + x2 + 31755 |
app(cons(x,l1),l2) | → | cons(x,app(l1,l2)) | (8) |
app(nil,l) | → | l | (7) |
app(app(l1,l2),l3) | → | app(l1,app(l2,l3)) | (9) |
mem#(x,cons(y,l)) | → | ifmem#(eq(x,y),x,l) | (31) |
ifmem#(false,x,l) | → | mem#(x,l) | (22) |
The dependency pairs are split into 0 components.
eq#(s(x),s(y)) | → | eq#(x,y) | (36) |
[mem(x1, x2)] | = | x2 + 2 |
[s(x1)] | = | x1 + 1 |
[ifinter(x1,...,x4)] | = | 0 |
[eq(x1, x2)] | = | 11946 |
[false] | = | 1 |
[mem#(x1, x2)] | = | 0 |
[ifmem(x1, x2, x3)] | = | x1 + x2 + 0 |
[ifinter#(x1,...,x4)] | = | 1 |
[true] | = | 11947 |
[ifmem#(x1, x2, x3)] | = | 1 |
[eq#(x1, x2)] | = | x1 + x2 + 0 |
[if(x1, x2, x3)] | = | 0 |
[0] | = | 1 |
[nil] | = | 42207 |
[app#(x1, x2)] | = | 0 |
[cons(x1, x2)] | = | x2 + 11943 |
[if#(x1, x2, x3)] | = | 0 |
[inter(x1, x2)] | = | 0 |
[inter#(x1, x2)] | = | 0 |
[app(x1, x2)] | = | x1 + x2 + 31755 |
app(cons(x,l1),l2) | → | cons(x,app(l1,l2)) | (8) |
app(nil,l) | → | l | (7) |
app(app(l1,l2),l3) | → | app(l1,app(l2,l3)) | (9) |
eq#(s(x),s(y)) | → | eq#(x,y) | (36) |
The dependency pairs are split into 0 components.