The rewrite relation of the following TRS is considered.
|
originates from |
|
|
originates from |
|
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
|
originates from |
le(s(z0),s(z1)) |
→ |
le(z0,z1) |
(17) |
|
|
originates from |
|
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
|
originates from |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
|
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
|
originates from |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
|
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
|
originates from |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
|
|
originates from |
|
|
originates from |
gcd(s(z0),0) |
→ |
s(z0) |
(29) |
|
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
|
originates from |
gcd(s(z0),s(z1)) |
→ |
if_gcd(le(z1,z0),s(z0),s(z1)) |
(31) |
|
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
|
originates from |
if_gcd(true,s(z0),s(z1)) |
→ |
gcd(minus(z0,z1),s(z1)) |
(33) |
|
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
|
originates from |
if_gcd(false,s(z0),s(z1)) |
→ |
gcd(minus(z1,z0),s(z0)) |
(35) |
|
Moreover, we add the following terms to the innermost strategy.
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
are strictly oriented by the following
linear polynomial interpretation over the naturals
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
le#(0,z0) |
→ |
c |
(14) |
le#(s(z0),0) |
→ |
c1 |
(16) |
le#(s(z0),s(z1)) |
→ |
c2(le#(z0,z1)) |
(18) |
minus#(0,z0) |
→ |
c3 |
(20) |
minus#(s(z0),z1) |
→ |
c4(if_minus#(le(s(z0),z1),s(z0),z1),le#(s(z0),z1)) |
(22) |
if_minus#(true,s(z0),z1) |
→ |
c5 |
(24) |
if_minus#(false,s(z0),z1) |
→ |
c6(minus#(z0,z1)) |
(26) |
gcd#(0,z0) |
→ |
c7 |
(28) |
gcd#(s(z0),0) |
→ |
c8 |
(30) |
gcd#(s(z0),s(z1)) |
→ |
c9(if_gcd#(le(z1,z0),s(z0),s(z1)),le#(z1,z0)) |
(32) |
if_gcd#(true,s(z0),s(z1)) |
→ |
c10(gcd#(minus(z0,z1),s(z1)),minus#(z0,z1)) |
(34) |
if_gcd#(false,s(z0),s(z1)) |
→ |
c11(gcd#(minus(z1,z0),s(z0)),minus#(z1,z0)) |
(36) |
minus(s(z0),z1) |
→ |
if_minus(le(s(z0),z1),s(z0),z1) |
(21) |
if_minus(false,s(z0),z1) |
→ |
s(minus(z0,z1)) |
(25) |
if_minus(true,s(z0),z1) |
→ |
0 |
(23) |
minus(0,z0) |
→ |
0 |
(19) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).