The relative rewrite relation R/S is considered where R is the following TRS
prefix(Cons(x',xs'),Cons(x,xs)) | → | and(!EQ(x',x),prefix(xs',xs)) | (1) |
domatch(Cons(x,xs),Nil,n) | → | Nil | (2) |
domatch(Nil,Nil,n) | → | Cons(n,Nil) | (3) |
prefix(Cons(x,xs),Nil) | → | False | (4) |
prefix(Nil,cs) | → | True | (5) |
domatch(patcs,Cons(x,xs),n) | → | domatch[Ite](prefix(patcs,Cons(x,xs)),patcs,Cons(x,xs),n) | (6) |
eqNatList(Cons(x,xs),Cons(y,ys)) | → | eqNatList[Ite](!EQ(x,y),y,ys,x,xs) | (7) |
eqNatList(Cons(x,xs),Nil) | → | False | (8) |
eqNatList(Nil,Cons(y,ys)) | → | False | (9) |
eqNatList(Nil,Nil) | → | True | (10) |
notEmpty(Cons(x,xs)) | → | True | (11) |
notEmpty(Nil) | → | False | (12) |
strmatch(patstr,str) | → | domatch(patstr,str,Nil) | (13) |
and S is the following TRS.
and(False,False) | → | False | (14) |
and(True,False) | → | False | (15) |
and(False,True) | → | False | (16) |
and(True,True) | → | True | (17) |
!EQ(S(x),S(y)) | → | !EQ(x,y) | (18) |
!EQ(0,S(y)) | → | False | (19) |
!EQ(S(x),0) | → | False | (20) |
!EQ(0,0) | → | True | (21) |
domatch[Ite](False,patcs,Cons(x,xs),n) | → | domatch(patcs,xs,Cons(n,Cons(Nil,Nil))) | (22) |
domatch[Ite](True,patcs,Cons(x,xs),n) | → | Cons(n,domatch(patcs,xs,Cons(n,Cons(Nil,Nil)))) | (23) |
eqNatList[Ite](False,y,ys,x,xs) | → | False | (24) |
eqNatList[Ite](True,y,ys,x,xs) | → | eqNatList(xs,ys) | (25) |
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
and#(False,False) |
and#(True,False) |
and#(False,True) |
and#(True,True) |
!EQ#(S(z0),S(z1)) |
!EQ#(0,S(z0)) |
!EQ#(S(z0),0) |
!EQ#(0,0) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) |
eqNatList[Ite]#(False,z0,z1,z2,z3) |
eqNatList[Ite]#(True,z0,z1,z2,z3) |
prefix#(Cons(z0,z1),Cons(z2,z3)) |
prefix#(Cons(z0,z1),Nil) |
prefix#(Nil,z0) |
domatch#(Cons(z0,z1),Nil,z2) |
domatch#(Nil,Nil,z0) |
domatch#(z0,Cons(z1,z2),z3) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) |
eqNatList#(Cons(z0,z1),Nil) |
eqNatList#(Nil,Cons(z0,z1)) |
eqNatList#(Nil,Nil) |
notEmpty#(Cons(z0,z1)) |
notEmpty#(Nil) |
strmatch#(z0,z1) |
domatch[Ite](False,z0,Cons(z1,z2),z3) | → | domatch(z0,z2,Cons(z3,Cons(Nil,Nil))) | (61) |
domatch[Ite](True,z0,Cons(z1,z2),z3) | → | Cons(z3,domatch(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (63) |
eqNatList[Ite](False,z0,z1,z2,z3) | → | False | (65) |
eqNatList[Ite](True,z0,z1,z2,z3) | → | eqNatList(z3,z1) | (67) |
domatch(Cons(z0,z1),Nil,z2) | → | Nil | (32) |
domatch(Nil,Nil,z0) | → | Cons(z0,Nil) | (34) |
domatch(z0,Cons(z1,z2),z3) | → | domatch[Ite](prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3) | (36) |
eqNatList(Cons(z0,z1),Cons(z2,z3)) | → | eqNatList[Ite](!EQ(z0,z2),z2,z3,z0,z1) | (38) |
eqNatList(Cons(z0,z1),Nil) | → | False | (40) |
eqNatList(Nil,Cons(z0,z1)) | → | False | (42) |
eqNatList(Nil,Nil) | → | True | (10) |
notEmpty(Cons(z0,z1)) | → | True | (45) |
notEmpty(Nil) | → | False | (12) |
strmatch(z0,z1) | → | domatch(z0,z1,Nil) | (48) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 1 |
[prefix(x1, x2)] | = | 0 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x2 + 0 |
[eqNatList[Ite]#(x1,...,x5)] | = | 0 |
[prefix#(x1, x2)] | = | 0 |
[domatch#(x1, x2, x3)] | = | 1 · x1 + 0 |
[eqNatList#(x1, x2)] | = | 0 |
[notEmpty#(x1)] | = | 1 + 1 · x1 |
[strmatch#(x1, x2)] | = | 1 + 1 · x1 |
[S(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[False] | = | 0 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 1 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 1 |
[prefix(x1, x2)] | = | 1 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x2 + 0 + 1 · x3 |
[eqNatList[Ite]#(x1,...,x5)] | = | 0 |
[prefix#(x1, x2)] | = | 0 |
[domatch#(x1, x2, x3)] | = | 1 · x1 + 0 |
[eqNatList#(x1, x2)] | = | 0 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 · x1 + 0 |
[S(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[False] | = | 1 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 0 |
[Nil] | = | 1 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 1 |
[prefix(x1, x2)] | = | 1 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x2 + 0 + 1 · x3 |
[eqNatList[Ite]#(x1,...,x5)] | = | 1 |
[prefix#(x1, x2)] | = | 0 |
[domatch#(x1, x2, x3)] | = | 1 · x1 + 0 |
[eqNatList#(x1, x2)] | = | 1 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 · x1 + 0 |
[S(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[False] | = | 1 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 0 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 1 |
[prefix(x1, x2)] | = | 1 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x2 + 0 + 1 · x3 |
[eqNatList[Ite]#(x1,...,x5)] | = | 0 |
[prefix#(x1, x2)] | = | 1 |
[domatch#(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 |
[eqNatList#(x1, x2)] | = | 0 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[S(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[False] | = | 1 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 1 + 1 · x2 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 2 |
[prefix(x1, x2)] | = | 1 + 3 · x1 + 2 · x2 |
[and(x1, x2)] | = | 2 · x1 + 0 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 0 |
[eqNatList[Ite]#(x1,...,x5)] | = | 3 · x3 + 0 |
[prefix#(x1, x2)] | = | 0 |
[domatch#(x1, x2, x3)] | = | 0 |
[eqNatList#(x1, x2)] | = | 3 · x2 + 0 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 + 1 · x1 |
[S(x1)] | = | 1 · x1 + 0 |
[0] | = | 0 |
[False] | = | 0 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 3 + 1 · x2 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 1 |
[prefix(x1, x2)] | = | 1 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x2 + 0 + 1 · x3 |
[eqNatList[Ite]#(x1,...,x5)] | = | 0 |
[prefix#(x1, x2)] | = | 0 |
[domatch#(x1, x2, x3)] | = | 1 + 1 · x1 + 1 · x2 |
[eqNatList#(x1, x2)] | = | 0 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[S(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[False] | = | 1 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 1 + 1 · x2 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
[c] | = | 0 |
[c1] | = | 0 |
[c2] | = | 0 |
[c3] | = | 0 |
[c4(x1)] | = | 1 · x1 + 0 |
[c5] | = | 0 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[c10] | = | 0 |
[c11(x1)] | = | 1 · x1 + 0 |
[c12(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x2 + 1 · x3 |
[c13] | = | 0 |
[c14] | = | 0 |
[c15] | = | 0 |
[c16] | = | 0 |
[c17(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c18(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c19] | = | 0 |
[c20] | = | 0 |
[c21] | = | 0 |
[c22] | = | 0 |
[c23] | = | 0 |
[c24(x1)] | = | 1 · x1 + 0 |
[!EQ(x1, x2)] | = | 0 |
[prefix(x1, x2)] | = | 0 |
[and(x1, x2)] | = | 1 |
[and#(x1, x2)] | = | 0 |
[!EQ#(x1, x2)] | = | 0 |
[domatch[Ite]#(x1,...,x4)] | = | 1 · x4 + 0 + 1 · x3 · x3 + 2 · x2 · x3 |
[eqNatList[Ite]#(x1,...,x5)] | = | 0 |
[prefix#(x1, x2)] | = | 1 · x1 + 0 |
[domatch#(x1, x2, x3)] | = | 1 · x1 + 0 + 1 · x3 + 2 · x2 · x1 + 1 · x2 · x2 |
[eqNatList#(x1, x2)] | = | 0 |
[notEmpty#(x1)] | = | 0 |
[strmatch#(x1, x2)] | = | 1 + 2 · x1 + 2 · x2 + 1 · x2 · x2 + 2 · x1 · x2 + 2 · x1 · x1 |
[S(x1)] | = | 0 |
[0] | = | 2 |
[False] | = | 0 |
[True] | = | 0 |
[Cons(x1, x2)] | = | 2 + 1 · x2 |
[Nil] | = | 0 |
and#(False,False) | → | c | (50) |
and#(True,False) | → | c1 | (51) |
and#(False,True) | → | c2 | (52) |
and#(True,True) | → | c3 | (53) |
!EQ#(S(z0),S(z1)) | → | c4(!EQ#(z0,z1)) | (55) |
!EQ#(0,S(z0)) | → | c5 | (57) |
!EQ#(S(z0),0) | → | c6 | (59) |
!EQ#(0,0) | → | c7 | (60) |
domatch[Ite]#(False,z0,Cons(z1,z2),z3) | → | c8(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (62) |
domatch[Ite]#(True,z0,Cons(z1,z2),z3) | → | c9(domatch#(z0,z2,Cons(z3,Cons(Nil,Nil)))) | (64) |
eqNatList[Ite]#(False,z0,z1,z2,z3) | → | c10 | (66) |
eqNatList[Ite]#(True,z0,z1,z2,z3) | → | c11(eqNatList#(z3,z1)) | (68) |
prefix#(Cons(z0,z1),Cons(z2,z3)) | → | c12(and#(!EQ(z0,z2),prefix(z1,z3)),!EQ#(z0,z2),prefix#(z1,z3)) | (27) |
prefix#(Cons(z0,z1),Nil) | → | c13 | (29) |
prefix#(Nil,z0) | → | c14 | (31) |
domatch#(Cons(z0,z1),Nil,z2) | → | c15 | (33) |
domatch#(Nil,Nil,z0) | → | c16 | (35) |
domatch#(z0,Cons(z1,z2),z3) | → | c17(domatch[Ite]#(prefix(z0,Cons(z1,z2)),z0,Cons(z1,z2),z3),prefix#(z0,Cons(z1,z2))) | (37) |
eqNatList#(Cons(z0,z1),Cons(z2,z3)) | → | c18(eqNatList[Ite]#(!EQ(z0,z2),z2,z3,z0,z1),!EQ#(z0,z2)) | (39) |
eqNatList#(Cons(z0,z1),Nil) | → | c19 | (41) |
eqNatList#(Nil,Cons(z0,z1)) | → | c20 | (43) |
eqNatList#(Nil,Nil) | → | c21 | (44) |
notEmpty#(Cons(z0,z1)) | → | c22 | (46) |
notEmpty#(Nil) | → | c23 | (47) |
strmatch#(z0,z1) | → | c24(domatch#(z0,z1,Nil)) | (49) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).