The rewrite relation of the following TRS is considered.
|
originates from |
|
|
originates from |
|
|
originates from |
|
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
originates from |
|
eq(s(z0),s(z1)) |
→ |
eq(z0,z1) |
(16) |
|
|
originates from |
|
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
originates from |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
originates from |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
originates from |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
|
originates from |
|
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
originates from |
|
purge(add(z0,z1)) |
→ |
add(z0,purge(rm(z0,z1))) |
(27) |
|
Moreover, we add the following terms to the innermost strategy.
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
|
eq#(0,0) |
→ |
c |
(11) |
|
eq#(0,s(z0)) |
→ |
c1 |
(13) |
|
eq#(s(z0),0) |
→ |
c2 |
(15) |
|
eq#(s(z0),s(z1)) |
→ |
c3(eq#(z0,z1)) |
(17) |
|
rm#(z0,nil) |
→ |
c4 |
(19) |
|
rm#(z0,add(z1,z2)) |
→ |
c5(ifrm#(eq(z0,z1),z0,add(z1,z2)),eq#(z0,z1)) |
(21) |
|
ifrm#(true,z0,add(z1,z2)) |
→ |
c6(rm#(z0,z2)) |
(23) |
|
ifrm#(false,z0,add(z1,z2)) |
→ |
c7(rm#(z0,z2)) |
(25) |
|
purge#(nil) |
→ |
c8 |
(26) |
|
purge#(add(z0,z1)) |
→ |
c9(purge#(rm(z0,z1)),rm#(z0,z1)) |
(28) |
|
rm(z0,add(z1,z2)) |
→ |
ifrm(eq(z0,z1),z0,add(z1,z2)) |
(20) |
|
ifrm(false,z0,add(z1,z2)) |
→ |
add(z1,rm(z0,z2)) |
(24) |
|
rm(z0,nil) |
→ |
nil |
(18) |
|
ifrm(true,z0,add(z1,z2)) |
→ |
rm(z0,z2) |
(22) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).