The rewrite relation of the following TRS is considered.
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
active#(U11(tt,N)) | → | mark#(N) | (39) |
active#(U21(tt,M,N)) | → | plus#(N,M) | (40) |
active#(U21(tt,M,N)) | → | s#(plus(N,M)) | (41) |
active#(U21(tt,M,N)) | → | mark#(s(plus(N,M))) | (42) |
active#(and(tt,X)) | → | mark#(X) | (43) |
active#(isNat(0)) | → | mark#(tt) | (44) |
active#(isNat(plus(V1,V2))) | → | isNat#(V2) | (45) |
active#(isNat(plus(V1,V2))) | → | isNat#(V1) | (46) |
active#(isNat(plus(V1,V2))) | → | and#(isNat(V1),isNat(V2)) | (47) |
active#(isNat(plus(V1,V2))) | → | mark#(and(isNat(V1),isNat(V2))) | (48) |
active#(isNat(s(V1))) | → | isNat#(V1) | (49) |
active#(isNat(s(V1))) | → | mark#(isNat(V1)) | (50) |
active#(plus(N,0)) | → | isNat#(N) | (51) |
active#(plus(N,0)) | → | U11#(isNat(N),N) | (52) |
active#(plus(N,0)) | → | mark#(U11(isNat(N),N)) | (53) |
active#(plus(N,s(M))) | → | isNat#(N) | (54) |
active#(plus(N,s(M))) | → | isNat#(M) | (55) |
active#(plus(N,s(M))) | → | and#(isNat(M),isNat(N)) | (56) |
active#(plus(N,s(M))) | → | U21#(and(isNat(M),isNat(N)),M,N) | (57) |
active#(plus(N,s(M))) | → | mark#(U21(and(isNat(M),isNat(N)),M,N)) | (58) |
mark#(U11(X1,X2)) | → | mark#(X1) | (59) |
mark#(U11(X1,X2)) | → | U11#(mark(X1),X2) | (60) |
mark#(U11(X1,X2)) | → | active#(U11(mark(X1),X2)) | (61) |
mark#(tt) | → | active#(tt) | (62) |
mark#(U21(X1,X2,X3)) | → | mark#(X1) | (63) |
mark#(U21(X1,X2,X3)) | → | U21#(mark(X1),X2,X3) | (64) |
mark#(U21(X1,X2,X3)) | → | active#(U21(mark(X1),X2,X3)) | (65) |
mark#(s(X)) | → | mark#(X) | (66) |
mark#(s(X)) | → | s#(mark(X)) | (67) |
mark#(s(X)) | → | active#(s(mark(X))) | (68) |
mark#(plus(X1,X2)) | → | mark#(X2) | (69) |
mark#(plus(X1,X2)) | → | mark#(X1) | (70) |
mark#(plus(X1,X2)) | → | plus#(mark(X1),mark(X2)) | (71) |
mark#(plus(X1,X2)) | → | active#(plus(mark(X1),mark(X2))) | (72) |
mark#(and(X1,X2)) | → | mark#(X1) | (73) |
mark#(and(X1,X2)) | → | and#(mark(X1),X2) | (74) |
mark#(and(X1,X2)) | → | active#(and(mark(X1),X2)) | (75) |
mark#(isNat(X)) | → | active#(isNat(X)) | (76) |
mark#(0) | → | active#(0) | (77) |
U11#(mark(X1),X2) | → | U11#(X1,X2) | (78) |
U11#(X1,mark(X2)) | → | U11#(X1,X2) | (79) |
U11#(active(X1),X2) | → | U11#(X1,X2) | (80) |
U11#(X1,active(X2)) | → | U11#(X1,X2) | (81) |
U21#(mark(X1),X2,X3) | → | U21#(X1,X2,X3) | (82) |
U21#(X1,mark(X2),X3) | → | U21#(X1,X2,X3) | (83) |
U21#(X1,X2,mark(X3)) | → | U21#(X1,X2,X3) | (84) |
U21#(active(X1),X2,X3) | → | U21#(X1,X2,X3) | (85) |
U21#(X1,active(X2),X3) | → | U21#(X1,X2,X3) | (86) |
U21#(X1,X2,active(X3)) | → | U21#(X1,X2,X3) | (87) |
s#(mark(X)) | → | s#(X) | (88) |
s#(active(X)) | → | s#(X) | (89) |
plus#(mark(X1),X2) | → | plus#(X1,X2) | (90) |
plus#(X1,mark(X2)) | → | plus#(X1,X2) | (91) |
plus#(active(X1),X2) | → | plus#(X1,X2) | (92) |
plus#(X1,active(X2)) | → | plus#(X1,X2) | (93) |
and#(mark(X1),X2) | → | and#(X1,X2) | (94) |
and#(X1,mark(X2)) | → | and#(X1,X2) | (95) |
and#(active(X1),X2) | → | and#(X1,X2) | (96) |
and#(X1,active(X2)) | → | and#(X1,X2) | (97) |
isNat#(mark(X)) | → | isNat#(X) | (98) |
isNat#(active(X)) | → | isNat#(X) | (99) |
The dependency pairs are split into 7 components.
mark#(isNat(X)) | → | active#(isNat(X)) | (76) |
active#(isNat(s(V1))) | → | mark#(isNat(V1)) | (50) |
active#(isNat(plus(V1,V2))) | → | mark#(and(isNat(V1),isNat(V2))) | (48) |
mark#(and(X1,X2)) | → | active#(and(mark(X1),X2)) | (75) |
active#(and(tt,X)) | → | mark#(X) | (43) |
mark#(and(X1,X2)) | → | mark#(X1) | (73) |
mark#(plus(X1,X2)) | → | active#(plus(mark(X1),mark(X2))) | (72) |
active#(plus(N,s(M))) | → | mark#(U21(and(isNat(M),isNat(N)),M,N)) | (58) |
mark#(U21(X1,X2,X3)) | → | active#(U21(mark(X1),X2,X3)) | (65) |
active#(U21(tt,M,N)) | → | mark#(s(plus(N,M))) | (42) |
mark#(s(X)) | → | mark#(X) | (66) |
mark#(plus(X1,X2)) | → | mark#(X1) | (70) |
mark#(plus(X1,X2)) | → | mark#(X2) | (69) |
mark#(U21(X1,X2,X3)) | → | mark#(X1) | (63) |
mark#(U11(X1,X2)) | → | active#(U11(mark(X1),X2)) | (61) |
active#(U11(tt,N)) | → | mark#(N) | (39) |
mark#(U11(X1,X2)) | → | mark#(X1) | (59) |
active#(plus(N,0)) | → | mark#(U11(isNat(N),N)) | (53) |
[U21(x1, x2, x3)] | = | 0 · x1 + 0 · x2 + 7 · x3 + 0 |
[0] | = | 0 |
[U11(x1, x2)] | = | 2 · x1 + 7 · x2 + 0 |
[mark(x1)] | = | 0 · x1 + -∞ |
[plus(x1, x2)] | = | 7 · x1 + 0 · x2 + 0 |
[active#(x1)] | = | 0 · x1 + 0 |
[tt] | = | 0 |
[and(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | 0 · x1 + -∞ |
[s(x1)] | = | 0 · x1 + -∞ |
[active(x1)] | = | 0 · x1 + -∞ |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
active#(U11(tt,N)) | → | mark#(N) | (39) |
The dependency pairs are split into 1 component.
mark#(isNat(X)) | → | active#(isNat(X)) | (76) |
active#(isNat(s(V1))) | → | mark#(isNat(V1)) | (50) |
active#(isNat(plus(V1,V2))) | → | mark#(and(isNat(V1),isNat(V2))) | (48) |
mark#(and(X1,X2)) | → | active#(and(mark(X1),X2)) | (75) |
active#(and(tt,X)) | → | mark#(X) | (43) |
mark#(and(X1,X2)) | → | mark#(X1) | (73) |
mark#(plus(X1,X2)) | → | active#(plus(mark(X1),mark(X2))) | (72) |
active#(plus(N,s(M))) | → | mark#(U21(and(isNat(M),isNat(N)),M,N)) | (58) |
mark#(U21(X1,X2,X3)) | → | active#(U21(mark(X1),X2,X3)) | (65) |
active#(U21(tt,M,N)) | → | mark#(s(plus(N,M))) | (42) |
mark#(s(X)) | → | mark#(X) | (66) |
mark#(plus(X1,X2)) | → | mark#(X1) | (70) |
mark#(plus(X1,X2)) | → | mark#(X2) | (69) |
mark#(U21(X1,X2,X3)) | → | mark#(X1) | (63) |
mark#(U11(X1,X2)) | → | mark#(X1) | (59) |
active#(plus(N,0)) | → | mark#(U11(isNat(N),N)) | (53) |
[U21(x1, x2, x3)] | = | 0 · x1 + 0 · x2 + 1 · x3 + 0 |
[0] | = | 4 |
[U11(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[mark(x1)] | = | 0 · x1 + 0 |
[plus(x1, x2)] | = | 1 · x1 + 0 · x2 + 2 |
[active#(x1)] | = | 0 · x1 + -∞ |
[tt] | = | 2 |
[and(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | 0 · x1 + -∞ |
[s(x1)] | = | 0 · x1 + 0 |
[active(x1)] | = | 0 · x1 + 0 |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
mark#(plus(X1,X2)) | → | mark#(X1) | (70) |
active#(plus(N,0)) | → | mark#(U11(isNat(N),N)) | (53) |
[U21(x1, x2, x3)] | = | 3 · x1 + 4 · x2 + 4 · x3 + -∞ |
[0] | = | 2 |
[U11(x1, x2)] | = | 0 · x1 + 4 · x2 + -∞ |
[mark(x1)] | = | 0 · x1 + -∞ |
[plus(x1, x2)] | = | 4 · x1 + 4 · x2 + 2 |
[active#(x1)] | = | 0 · x1 + 0 |
[tt] | = | 0 |
[and(x1, x2)] | = | 0 · x1 + 1 · x2 + 0 |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | 0 · x1 + 0 |
[s(x1)] | = | 0 · x1 + 0 |
[active(x1)] | = | 0 · x1 + -∞ |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
active#(isNat(plus(V1,V2))) | → | mark#(and(isNat(V1),isNat(V2))) | (48) |
mark#(plus(X1,X2)) | → | mark#(X2) | (69) |
The dependency pairs are split into 2 components.
mark#(and(X1,X2)) | → | mark#(X1) | (73) |
mark#(and(X1,X2)) | → | active#(and(mark(X1),X2)) | (75) |
active#(and(tt,X)) | → | mark#(X) | (43) |
mark#(plus(X1,X2)) | → | active#(plus(mark(X1),mark(X2))) | (72) |
active#(plus(N,s(M))) | → | mark#(U21(and(isNat(M),isNat(N)),M,N)) | (58) |
mark#(U21(X1,X2,X3)) | → | active#(U21(mark(X1),X2,X3)) | (65) |
active#(U21(tt,M,N)) | → | mark#(s(plus(N,M))) | (42) |
mark#(s(X)) | → | mark#(X) | (66) |
mark#(U21(X1,X2,X3)) | → | mark#(X1) | (63) |
mark#(U11(X1,X2)) | → | mark#(X1) | (59) |
[U21(x1, x2, x3)] | = | 4 · x1 + 0 · x2 + 6 · x3 + 0 |
[0] | = | 5 |
[U11(x1, x2)] | = | 2 · x1 + 1 · x2 + 4 |
[mark(x1)] | = | 0 · x1 + -∞ |
[plus(x1, x2)] | = | 6 · x1 + 0 · x2 + -∞ |
[active#(x1)] | = | 0 · x1 + 0 |
[tt] | = | 3 |
[and(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | -∞ · x1 + 3 |
[s(x1)] | = | 0 · x1 + 7 |
[active(x1)] | = | 0 · x1 + -∞ |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
mark#(U11(X1,X2)) | → | mark#(X1) | (59) |
[U21(x1, x2, x3)] | = | 0 · x1 + 4 · x2 + 4 · x3 + 0 |
[0] | = | 0 |
[U11(x1, x2)] | = | 4 · x1 + 4 · x2 + 2 |
[mark(x1)] | = | 0 · x1 + -∞ |
[plus(x1, x2)] | = | 4 · x1 + 4 · x2 + 0 |
[active#(x1)] | = | 0 · x1 + -∞ |
[tt] | = | 0 |
[and(x1, x2)] | = | 4 · x1 + 0 · x2 + -∞ |
[mark#(x1)] | = | 0 · x1 + -∞ |
[isNat(x1)] | = | 0 · x1 + -∞ |
[s(x1)] | = | 0 · x1 + -∞ |
[active(x1)] | = | 0 · x1 + -∞ |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
mark#(and(X1,X2)) | → | mark#(X1) | (73) |
[U21(x1, x2, x3)] | = | 1 · x1 + 0 · x2 + 0 · x3 + 1 |
[0] | = | 0 |
[U11(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[mark(x1)] | = | 0 · x1 + 0 |
[plus(x1, x2)] | = | 0 · x1 + 0 · x2 + 0 |
[active#(x1)] | = | 0 · x1 + 0 |
[tt] | = | 0 |
[and(x1, x2)] | = | 0 · x1 + 0 · x2 + -∞ |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | -∞ · x1 + 0 |
[s(x1)] | = | 0 · x1 + 1 |
[active(x1)] | = | 0 · x1 + 0 |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
mark#(U21(X1,X2,X3)) | → | mark#(X1) | (63) |
[U21(x1, x2, x3)] | = | -∞ · x1 + 6 · x2 + 0 · x3 + 0 |
[0] | = | 1 |
[U11(x1, x2)] | = | -∞ · x1 + 0 · x2 + -∞ |
[mark(x1)] | = | 0 · x1 + -∞ |
[plus(x1, x2)] | = | 0 · x1 + 6 · x2 + -∞ |
[active#(x1)] | = | 0 · x1 + -∞ |
[tt] | = | 1 |
[and(x1, x2)] | = | 0 · x1 + 4 · x2 + -∞ |
[mark#(x1)] | = | 0 · x1 + 0 |
[isNat(x1)] | = | 0 · x1 + -∞ |
[s(x1)] | = | 0 · x1 + 0 |
[active(x1)] | = | 0 · x1 + -∞ |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
active#(and(tt,X)) | → | mark#(X) | (43) |
The dependency pairs are split into 1 component.
mark#(s(X)) | → | mark#(X) | (66) |
mark#(plus(X1,X2)) | → | active#(plus(mark(X1),mark(X2))) | (72) |
active#(plus(N,s(M))) | → | mark#(U21(and(isNat(M),isNat(N)),M,N)) | (58) |
mark#(U21(X1,X2,X3)) | → | active#(U21(mark(X1),X2,X3)) | (65) |
active#(U21(tt,M,N)) | → | mark#(s(plus(N,M))) | (42) |
[U21(x1, x2, x3)] | = | 0 · x1 + 1 · x2 + 3 · x3 + 2 |
[0] | = | 3 |
[U11(x1, x2)] | = | 2 · x1 + 2 · x2 + 0 |
[mark(x1)] | = | 1 · x1 + 0 |
[plus(x1, x2)] | = | 3 · x1 + 1 · x2 + 0 |
[active#(x1)] | = | 2 · x1 + 0 |
[tt] | = | 2 |
[and(x1, x2)] | = | 0 · x1 + 1 · x2 + 0 |
[mark#(x1)] | = | 2 · x1 + 0 |
[isNat(x1)] | = | 1/2 · x1 + 1/2 |
[s(x1)] | = | 1 · x1 + 2 |
[active(x1)] | = | 1 · x1 + 0 |
active(U11(tt,N)) | → | mark(N) | (1) |
active(U21(tt,M,N)) | → | mark(s(plus(N,M))) | (2) |
active(and(tt,X)) | → | mark(X) | (3) |
active(isNat(0)) | → | mark(tt) | (4) |
active(isNat(plus(V1,V2))) | → | mark(and(isNat(V1),isNat(V2))) | (5) |
active(isNat(s(V1))) | → | mark(isNat(V1)) | (6) |
active(plus(N,0)) | → | mark(U11(isNat(N),N)) | (7) |
active(plus(N,s(M))) | → | mark(U21(and(isNat(M),isNat(N)),M,N)) | (8) |
mark(U11(X1,X2)) | → | active(U11(mark(X1),X2)) | (9) |
mark(tt) | → | active(tt) | (10) |
mark(U21(X1,X2,X3)) | → | active(U21(mark(X1),X2,X3)) | (11) |
mark(s(X)) | → | active(s(mark(X))) | (12) |
mark(plus(X1,X2)) | → | active(plus(mark(X1),mark(X2))) | (13) |
mark(and(X1,X2)) | → | active(and(mark(X1),X2)) | (14) |
mark(isNat(X)) | → | active(isNat(X)) | (15) |
mark(0) | → | active(0) | (16) |
U11(mark(X1),X2) | → | U11(X1,X2) | (17) |
U11(X1,mark(X2)) | → | U11(X1,X2) | (18) |
U11(active(X1),X2) | → | U11(X1,X2) | (19) |
U11(X1,active(X2)) | → | U11(X1,X2) | (20) |
U21(mark(X1),X2,X3) | → | U21(X1,X2,X3) | (21) |
U21(X1,mark(X2),X3) | → | U21(X1,X2,X3) | (22) |
U21(X1,X2,mark(X3)) | → | U21(X1,X2,X3) | (23) |
U21(active(X1),X2,X3) | → | U21(X1,X2,X3) | (24) |
U21(X1,active(X2),X3) | → | U21(X1,X2,X3) | (25) |
U21(X1,X2,active(X3)) | → | U21(X1,X2,X3) | (26) |
s(mark(X)) | → | s(X) | (27) |
s(active(X)) | → | s(X) | (28) |
plus(mark(X1),X2) | → | plus(X1,X2) | (29) |
plus(X1,mark(X2)) | → | plus(X1,X2) | (30) |
plus(active(X1),X2) | → | plus(X1,X2) | (31) |
plus(X1,active(X2)) | → | plus(X1,X2) | (32) |
and(mark(X1),X2) | → | and(X1,X2) | (33) |
and(X1,mark(X2)) | → | and(X1,X2) | (34) |
and(active(X1),X2) | → | and(X1,X2) | (35) |
and(X1,active(X2)) | → | and(X1,X2) | (36) |
isNat(mark(X)) | → | isNat(X) | (37) |
isNat(active(X)) | → | isNat(X) | (38) |
mark#(s(X)) | → | mark#(X) | (66) |
The dependency pairs are split into 0 components.
mark#(isNat(X)) | → | active#(isNat(X)) | (76) |
active#(isNat(s(V1))) | → | mark#(isNat(V1)) | (50) |
π(mark#) | = | { 1 } |
π(active#) | = | { 1 } |
π(isNat) | = | { 1 } |
active#(isNat(s(V1))) | → | mark#(isNat(V1)) | (50) |
The dependency pairs are split into 0 components.
plus#(mark(X1),X2) | → | plus#(X1,X2) | (90) |
plus#(X1,active(X2)) | → | plus#(X1,X2) | (93) |
plus#(active(X1),X2) | → | plus#(X1,X2) | (92) |
plus#(X1,mark(X2)) | → | plus#(X1,X2) | (91) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
plus#(mark(X1),X2) | → | plus#(X1,X2) | (90) |
2 | ≥ | 2 | |
1 | > | 1 | |
plus#(X1,active(X2)) | → | plus#(X1,X2) | (93) |
2 | > | 2 | |
1 | ≥ | 1 | |
plus#(active(X1),X2) | → | plus#(X1,X2) | (92) |
2 | ≥ | 2 | |
1 | > | 1 | |
plus#(X1,mark(X2)) | → | plus#(X1,X2) | (91) |
2 | > | 2 | |
1 | ≥ | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
s#(mark(X)) | → | s#(X) | (88) |
s#(active(X)) | → | s#(X) | (89) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
s#(mark(X)) | → | s#(X) | (88) |
1 | > | 1 | |
s#(active(X)) | → | s#(X) | (89) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
isNat#(mark(X)) | → | isNat#(X) | (98) |
isNat#(active(X)) | → | isNat#(X) | (99) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
isNat#(mark(X)) | → | isNat#(X) | (98) |
1 | > | 1 | |
isNat#(active(X)) | → | isNat#(X) | (99) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
and#(mark(X1),X2) | → | and#(X1,X2) | (94) |
and#(X1,active(X2)) | → | and#(X1,X2) | (97) |
and#(active(X1),X2) | → | and#(X1,X2) | (96) |
and#(X1,mark(X2)) | → | and#(X1,X2) | (95) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
and#(mark(X1),X2) | → | and#(X1,X2) | (94) |
2 | ≥ | 2 | |
1 | > | 1 | |
and#(X1,active(X2)) | → | and#(X1,X2) | (97) |
2 | > | 2 | |
1 | ≥ | 1 | |
and#(active(X1),X2) | → | and#(X1,X2) | (96) |
2 | ≥ | 2 | |
1 | > | 1 | |
and#(X1,mark(X2)) | → | and#(X1,X2) | (95) |
2 | > | 2 | |
1 | ≥ | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
U11#(mark(X1),X2) | → | U11#(X1,X2) | (78) |
U11#(X1,active(X2)) | → | U11#(X1,X2) | (81) |
U11#(active(X1),X2) | → | U11#(X1,X2) | (80) |
U11#(X1,mark(X2)) | → | U11#(X1,X2) | (79) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
U11#(mark(X1),X2) | → | U11#(X1,X2) | (78) |
2 | ≥ | 2 | |
1 | > | 1 | |
U11#(X1,active(X2)) | → | U11#(X1,X2) | (81) |
2 | > | 2 | |
1 | ≥ | 1 | |
U11#(active(X1),X2) | → | U11#(X1,X2) | (80) |
2 | ≥ | 2 | |
1 | > | 1 | |
U11#(X1,mark(X2)) | → | U11#(X1,X2) | (79) |
2 | > | 2 | |
1 | ≥ | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
U21#(mark(X1),X2,X3) | → | U21#(X1,X2,X3) | (82) |
U21#(X1,X2,active(X3)) | → | U21#(X1,X2,X3) | (87) |
U21#(X1,active(X2),X3) | → | U21#(X1,X2,X3) | (86) |
U21#(active(X1),X2,X3) | → | U21#(X1,X2,X3) | (85) |
U21#(X1,X2,mark(X3)) | → | U21#(X1,X2,X3) | (84) |
U21#(X1,mark(X2),X3) | → | U21#(X1,X2,X3) | (83) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
U21#(mark(X1),X2,X3) | → | U21#(X1,X2,X3) | (82) |
3 | ≥ | 3 | |
2 | ≥ | 2 | |
1 | > | 1 | |
U21#(X1,X2,active(X3)) | → | U21#(X1,X2,X3) | (87) |
3 | > | 3 | |
2 | ≥ | 2 | |
1 | ≥ | 1 | |
U21#(X1,active(X2),X3) | → | U21#(X1,X2,X3) | (86) |
3 | ≥ | 3 | |
2 | > | 2 | |
1 | ≥ | 1 | |
U21#(active(X1),X2,X3) | → | U21#(X1,X2,X3) | (85) |
3 | ≥ | 3 | |
2 | ≥ | 2 | |
1 | > | 1 | |
U21#(X1,X2,mark(X3)) | → | U21#(X1,X2,X3) | (84) |
3 | > | 3 | |
2 | ≥ | 2 | |
1 | ≥ | 1 | |
U21#(X1,mark(X2),X3) | → | U21#(X1,X2,X3) | (83) |
3 | ≥ | 3 | |
2 | > | 2 | |
1 | ≥ | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.