The rewrite relation of the following TRS is considered.
a__zeros | → | cons(0,zeros) | (1) |
a__U11(tt,L) | → | a__U12(tt,L) | (2) |
a__U12(tt,L) | → | s(a__length(mark(L))) | (3) |
a__U21(tt,IL,M,N) | → | a__U22(tt,IL,M,N) | (4) |
a__U22(tt,IL,M,N) | → | a__U23(tt,IL,M,N) | (5) |
a__U23(tt,IL,M,N) | → | cons(mark(N),take(M,IL)) | (6) |
a__length(nil) | → | 0 | (7) |
a__length(cons(N,L)) | → | a__U11(tt,L) | (8) |
a__take(0,IL) | → | nil | (9) |
a__take(s(M),cons(N,IL)) | → | a__U21(tt,IL,M,N) | (10) |
mark(zeros) | → | a__zeros | (11) |
mark(U11(X1,X2)) | → | a__U11(mark(X1),X2) | (12) |
mark(U12(X1,X2)) | → | a__U12(mark(X1),X2) | (13) |
mark(length(X)) | → | a__length(mark(X)) | (14) |
mark(U21(X1,X2,X3,X4)) | → | a__U21(mark(X1),X2,X3,X4) | (15) |
mark(U22(X1,X2,X3,X4)) | → | a__U22(mark(X1),X2,X3,X4) | (16) |
mark(U23(X1,X2,X3,X4)) | → | a__U23(mark(X1),X2,X3,X4) | (17) |
mark(take(X1,X2)) | → | a__take(mark(X1),mark(X2)) | (18) |
mark(cons(X1,X2)) | → | cons(mark(X1),X2) | (19) |
mark(0) | → | 0 | (20) |
mark(tt) | → | tt | (21) |
mark(s(X)) | → | s(mark(X)) | (22) |
mark(nil) | → | nil | (23) |
a__zeros | → | zeros | (24) |
a__U11(X1,X2) | → | U11(X1,X2) | (25) |
a__U12(X1,X2) | → | U12(X1,X2) | (26) |
a__length(X) | → | length(X) | (27) |
a__U21(X1,X2,X3,X4) | → | U21(X1,X2,X3,X4) | (28) |
a__U22(X1,X2,X3,X4) | → | U22(X1,X2,X3,X4) | (29) |
a__U23(X1,X2,X3,X4) | → | U23(X1,X2,X3,X4) | (30) |
a__take(X1,X2) | → | take(X1,X2) | (31) |
a__take(0,IL) | → | nil | (9) |
a__length(nil) | → | 0 | (7) |
a__U11#(tt,L) | → | a__U12#(tt,L) | (32) |
a__U12#(tt,L) | → | a__length#(mark(L)) | (33) |
a__U12#(tt,L) | → | mark#(L) | (34) |
a__U21#(tt,IL,M,N) | → | a__U22#(tt,IL,M,N) | (35) |
a__U22#(tt,IL,M,N) | → | a__U23#(tt,IL,M,N) | (36) |
a__U23#(tt,IL,M,N) | → | mark#(N) | (37) |
a__length#(cons(N,L)) | → | a__U11#(tt,L) | (38) |
a__take#(s(M),cons(N,IL)) | → | a__U21#(tt,IL,M,N) | (39) |
mark#(zeros) | → | a__zeros# | (40) |
mark#(U11(X1,X2)) | → | a__U11#(mark(X1),X2) | (41) |
mark#(U11(X1,X2)) | → | mark#(X1) | (42) |
mark#(U12(X1,X2)) | → | a__U12#(mark(X1),X2) | (43) |
mark#(U12(X1,X2)) | → | mark#(X1) | (44) |
mark#(length(X)) | → | a__length#(mark(X)) | (45) |
mark#(length(X)) | → | mark#(X) | (46) |
mark#(U21(X1,X2,X3,X4)) | → | a__U21#(mark(X1),X2,X3,X4) | (47) |
mark#(U21(X1,X2,X3,X4)) | → | mark#(X1) | (48) |
mark#(U22(X1,X2,X3,X4)) | → | a__U22#(mark(X1),X2,X3,X4) | (49) |
mark#(U22(X1,X2,X3,X4)) | → | mark#(X1) | (50) |
mark#(U23(X1,X2,X3,X4)) | → | a__U23#(mark(X1),X2,X3,X4) | (51) |
mark#(U23(X1,X2,X3,X4)) | → | mark#(X1) | (52) |
mark#(take(X1,X2)) | → | a__take#(mark(X1),mark(X2)) | (53) |
mark#(take(X1,X2)) | → | mark#(X1) | (54) |
mark#(take(X1,X2)) | → | mark#(X2) | (55) |
mark#(cons(X1,X2)) | → | mark#(X1) | (56) |
mark#(s(X)) | → | mark#(X) | (57) |
mark#(zeros) | → | a__zeros# | (40) |
mark#(U11(X1,X2)) | → | a__U11#(mark(X1),X2) | (41) |
mark#(U11(X1,X2)) | → | mark#(X1) | (42) |
mark#(U12(X1,X2)) | → | a__U12#(mark(X1),X2) | (43) |
mark#(U12(X1,X2)) | → | mark#(X1) | (44) |
mark#(length(X)) | → | a__length#(mark(X)) | (45) |
mark#(length(X)) | → | mark#(X) | (46) |
a__U12#(tt,L) | → | mark#(L) | (34) |
mark#(U21(X1,X2,X3,X4)) | → | a__U21#(mark(X1),X2,X3,X4) | (47) |
a__U21#(tt,IL,M,N) | → | a__U22#(tt,IL,M,N) | (35) |
a__U22#(tt,IL,M,N) | → | a__U23#(tt,IL,M,N) | (36) |
a__U23#(tt,IL,M,N) | → | mark#(N) | (37) |
mark#(U21(X1,X2,X3,X4)) | → | mark#(X1) | (48) |
mark#(U22(X1,X2,X3,X4)) | → | a__U22#(mark(X1),X2,X3,X4) | (49) |
mark#(U22(X1,X2,X3,X4)) | → | mark#(X1) | (50) |
mark#(U23(X1,X2,X3,X4)) | → | a__U23#(mark(X1),X2,X3,X4) | (51) |
mark#(U23(X1,X2,X3,X4)) | → | mark#(X1) | (52) |
mark#(take(X1,X2)) | → | a__take#(mark(X1),mark(X2)) | (53) |
a__take#(s(M),cons(N,IL)) | → | a__U21#(tt,IL,M,N) | (39) |
mark#(take(X1,X2)) | → | mark#(X1) | (54) |
mark#(take(X1,X2)) | → | mark#(X2) | (55) |
mark#(cons(X1,X2)) | → | mark#(X1) | (56) |
mark#(s(X)) | → | mark#(X) | (57) |
a__U12#(tt,zeros) | → | a__length#(a__zeros) | (58) |
a__U12#(tt,U11(x0,x1)) | → | a__length#(a__U11(mark(x0),x1)) | (59) |
a__U12#(tt,U12(x0,x1)) | → | a__length#(a__U12(mark(x0),x1)) | (60) |
a__U12#(tt,length(x0)) | → | a__length#(a__length(mark(x0))) | (61) |
a__U12#(tt,U21(x0,x1,x2,x3)) | → | a__length#(a__U21(mark(x0),x1,x2,x3)) | (62) |
a__U12#(tt,U22(x0,x1,x2,x3)) | → | a__length#(a__U22(mark(x0),x1,x2,x3)) | (63) |
a__U12#(tt,U23(x0,x1,x2,x3)) | → | a__length#(a__U23(mark(x0),x1,x2,x3)) | (64) |
a__U12#(tt,take(x0,x1)) | → | a__length#(a__take(mark(x0),mark(x1))) | (65) |
a__U12#(tt,cons(x0,x1)) | → | a__length#(cons(mark(x0),x1)) | (66) |
a__U12#(tt,0) | → | a__length#(0) | (67) |
a__U12#(tt,tt) | → | a__length#(tt) | (68) |
a__U12#(tt,s(x0)) | → | a__length#(s(mark(x0))) | (69) |
a__U12#(tt,nil) | → | a__length#(nil) | (70) |
a__U12#(tt,0) | → | a__length#(0) | (67) |
a__U12#(tt,tt) | → | a__length#(tt) | (68) |
a__U12#(tt,s(x0)) | → | a__length#(s(mark(x0))) | (69) |
a__U12#(tt,nil) | → | a__length#(nil) | (70) |
a__U12#(tt,zeros) | → | a__length#(cons(0,zeros)) | (71) |
a__U12#(tt,zeros) | → | a__length#(zeros) | (72) |
a__U12#(tt,zeros) | → | a__length#(zeros) | (72) |
a__U12#(tt,U11(x0,x1)) | → | a__length#(a__U11(mark(x0),x1)) | (59) |
a__U12#(tt,U12(x0,x1)) | → | a__length#(a__U12(mark(x0),x1)) | (60) |
a__U12#(tt,length(x0)) | → | a__length#(a__length(mark(x0))) | (61) |
a__U12#(tt,U22(x0,x1,x2,x3)) | → | a__length#(a__U22(mark(x0),x1,x2,x3)) | (63) |
a__U12#(tt,cons(x0,x1)) | → | a__length#(cons(mark(x0),x1)) | (66) |
a__U12#(tt,U21(x0,x1,x2,x3)) | → | a__length#(a__U21(mark(x0),x1,x2,x3)) | (62) |
a__U12#(tt,U23(x0,x1,x2,x3)) | → | a__length#(a__U23(mark(x0),x1,x2,x3)) | (64) |
t0 | = | a__U11#(tt,zeros) |
→P | a__U12#(tt,zeros) | |
→P | a__length#(cons(0,zeros)) | |
→P | a__U11#(tt,zeros) | |
= | t3 |