The rewrite relation of the following TRS is considered.
|
originates from |
|
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
originates from |
|
if(false,z0,z1) |
→ |
z1 |
(22) |
|
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
originates from |
|
member(z0,nil) |
→ |
false |
(24) |
|
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
originates from |
|
member(z0,cons(z1,z2)) |
→ |
if(eq(z0,z1),true,member(z0,z2)) |
(26) |
|
|
originates from |
|
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
originates from |
|
eq(O(z0),0(z1)) |
→ |
eq(z0,z1) |
(29) |
|
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
originates from |
|
eq(0(z0),1(z1)) |
→ |
false |
(31) |
|
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
originates from |
|
eq(1(z0),0(z1)) |
→ |
false |
(33) |
|
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
originates from |
|
eq(1(z0),1(z1)) |
→ |
eq(z0,z1) |
(35) |
|
|
originates from |
|
negate(0(z0)) |
→ |
1(z0) |
(37) |
|
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
originates from |
|
negate(1(z0)) |
→ |
0(z0) |
(39) |
|
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
originates from |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
originates from |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
|
originates from |
|
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
originates from |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
|
originates from |
|
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
originates from |
|
verify(cons(z0,z1)) |
→ |
if(member(negate(z0),z1),false,verify(z1)) |
(49) |
|
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
originates from |
|
sat(z0) |
→ |
satck(z0,guess(z0)) |
(51) |
|
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
originates from |
|
satck(z0,z1) |
→ |
if(verify(z1),z1,unsat) |
(53) |
|
Moreover, we add the following terms to the innermost strategy.
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
negate(1(z0)) |
→ |
0(z0) |
(39) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
negate(0(z0)) |
→ |
1(z0) |
(37) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
negate(1(z0)) |
→ |
0(z0) |
(39) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
negate(0(z0)) |
→ |
1(z0) |
(37) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
negate(1(z0)) |
→ |
0(z0) |
(39) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
negate(0(z0)) |
→ |
1(z0) |
(37) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
if#(true,z0,z1) |
→ |
c |
(21) |
|
if#(false,z0,z1) |
→ |
c1 |
(23) |
|
member#(z0,nil) |
→ |
c2 |
(25) |
|
member#(z0,cons(z1,z2)) |
→ |
c3(if#(eq(z0,z1),true,member(z0,z2)),eq#(z0,z1),member#(z0,z2)) |
(27) |
|
eq#(nil,nil) |
→ |
c4 |
(28) |
|
eq#(O(z0),0(z1)) |
→ |
c5(eq#(z0,z1)) |
(30) |
|
eq#(0(z0),1(z1)) |
→ |
c6 |
(32) |
|
eq#(1(z0),0(z1)) |
→ |
c7 |
(34) |
|
eq#(1(z0),1(z1)) |
→ |
c8(eq#(z0,z1)) |
(36) |
|
negate#(0(z0)) |
→ |
c9 |
(38) |
|
negate#(1(z0)) |
→ |
c10 |
(40) |
|
choice#(cons(z0,z1)) |
→ |
c11 |
(42) |
|
choice#(cons(z0,z1)) |
→ |
c12(choice#(z1)) |
(44) |
|
guess#(nil) |
→ |
c13 |
(45) |
|
guess#(cons(z0,z1)) |
→ |
c14(choice#(z0),guess#(z1)) |
(47) |
|
verify#(nil) |
→ |
c15 |
(48) |
|
verify#(cons(z0,z1)) |
→ |
c16(if#(member(negate(z0),z1),false,verify(z1)),member#(negate(z0),z1),negate#(z0),verify#(z1)) |
(50) |
|
sat#(z0) |
→ |
c17(satck#(z0,guess(z0)),guess#(z0)) |
(52) |
|
satck#(z0,z1) |
→ |
c18(if#(verify(z1),z1,unsat),verify#(z1)) |
(54) |
|
negate(1(z0)) |
→ |
0(z0) |
(39) |
|
guess(nil) |
→ |
nil |
(14) |
|
guess(cons(z0,z1)) |
→ |
cons(choice(z0),guess(z1)) |
(46) |
|
choice(cons(z0,z1)) |
→ |
choice(z1) |
(43) |
|
choice(cons(z0,z1)) |
→ |
z0 |
(41) |
|
negate(0(z0)) |
→ |
1(z0) |
(37) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).