algorithms for testing satisfiability formulas

12
Artificial Intelligence Review 15: 153–163, 2001. © 2001 Kluwer Academic Publishers. Printed in the Netherlands. 153 Algorithms for Testing Satisfiability Formulas MARIN VLADA University of Bucharest, Department of Mathematics, 14 Academiei Street, RO – 70109, Romania Abstract. The present paper presents algorithms for testing satisfiabily of clausal formulas in the propositional logic and the first-order logic. The algorithm based on the enumeration of solutions for testing the satisfiability of propositional formula, has already been given by K. Iwama, O. Dubois. The originality in this paper is to combine this algorithm to other proce- dures, especially with the pure-literal literal and the one-literal rule, and also the one which consists in changing any formulas in formulas bounded. The algorithm based on the enumera- tion of the solution combined to these procedures is more efficient. The algorithm based on the concept of resolutive derivation from Skolem normal form of formula α in first-order logic, has already been given. The idea in present’s paper is to combined to this algorithm to process of elimination of tautological clauses and process of elimination of subsumed clauses. Keywords: first-order logic, propositional logic, resolution method, resolutive derivation, satisfiability 1. Algorithm for Testing Satisfiability Propositional Formulas Consider the propositional formulae in the conjunctive normal form (CNF): α ={C 1 ,..., C m } with m clauses, i.e. α = C 1 ... C m .A clause is C 1 = {L 1 ... L ni }, i {1, . . . , m}, i.e. C i ={L 1 ,..., L ni } where each L j , j {1, . . . , n i }, is a literal.A literal is an atom or negation of an atom. A positive literal is an atom. A negative literal is the negation of an atom. An atom A is a formula (called an atomic formula or atomic variable) p(t 1 ,..., t n ), where p is an n-ary predicate symbol and t 1 ,..., t n are terms. Therefore for each j {1, . . . , n i }, L j = A i or L j = ¬A i , is an atom. An atom symbol is called an atomic variable. If A 1 ,..., A n is an atomic variables in being formula α, then we note atom(α) ={A|∃1 i m, A C i or ¬A C i }, the occurrences set of atomic variables in a formula α, i.e. atom(α)={A 1 , ..., A n } and n = |atom(α)|. If C α is a clause, then we denote by r(C) the number of atomic variables which do not occur in C, and do occur in formula α, i.e. r(C)= |atom(α)\{A|A

Upload: marin-vlada

Post on 03-Aug-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Artificial Intelligence Review15: 153–163, 2001.© 2001Kluwer Academic Publishers. Printed in the Netherlands.

153

Algorithms for Testing Satisfiability Formulas

MARIN VLADAUniversity of Bucharest, Department of Mathematics, 14 Academiei Street, RO – 70109,Romania

Abstract. The present paper presents algorithms for testing satisfiabily of clausal formulasin the propositional logic and the first-order logic. The algorithm based on the enumeration ofsolutions for testing the satisfiability of propositional formula, has already been given by K.Iwama, O. Dubois. The originality in this paper is to combine this algorithm to other proce-dures, especially with the pure-literal literal and the one-literal rule, and also the one whichconsists in changing any formulas in formulas bounded. The algorithm based on the enumera-tion of the solution combined to these procedures is more efficient. The algorithm based on theconcept of resolutive derivation from Skolem normal form of formulaα in first-order logic,has already been given. The idea in present’s paper is to combined to this algorithm to processof elimination of tautological clauses and process of elimination of subsumed clauses.

Keywords: first-order logic, propositional logic, resolution method, resolutive derivation,satisfiability

1. Algorithm for Testing Satisfiability Propositional Formulas

Consider the propositional formulae in theconjunctive normal form(CNF):α = {C1, . . . ,Cm} with m clauses, i.e.α = C1 ∧ . . .∧ Cm. A clauseis C1 ={ L1 ∨ . . .∨ Lni}, i ∈ {1, . . . , m}, i.e. Ci = {L1, . . . ,Lni} where eachLj , j ∈{1, . . . , ni}, is a literal. A literal is anatomor negationof an atom. Apositiveliteral is an atom. Anegative literalis the negation of an atom. AnatomA isa formula (called anatomic formulaor atomic variable) p(t1, . . . , tn), wherep is ann-ary predicate symbolandt1, . . . , tn areterms. Therefore for eachj∈ {1, . . . , ni}, Lj = Ai or Lj = ¬Ai, is an atom. An atom symbol is called anatomic variable. If A1, . . . ,An is an atomic variables in being formulaα, thenwe note

atom(α) = {A|∃1≤ i ≤ m,A ∈ Ci or ¬A ∈ Ci},the occurrencesset of atomic variables in a formulaα, i.e. atom(α) = {A1,. . . ,An} and n = |atom(α)|.

If C∈ α is a clause, then we denote byr(C) the number of atomic variableswhich do not occur inC, and do occur in formulaα, i.e.r(C) = |atom(α)\{ A|A

154 MARIN VLADA

∈ C} |. For the clausesC1, . . . ,Ck ∈ α, we denote byr(C1, . . . ,Ck the numberof atomic variables which occur inα and do not occur in∪kj=1 Cj , i.e.

r(C1, . . . , Ck) = |atom(α)\{A|A ∈ ∪kj=1Cj }|.Letα = {C1, . . . ,Cm} be a clausal formula andC1, . . . ,Ck ∈ α, be pairwise

distinct clauses (viewed as sets). Then we denote

dif (C1, . . . , Ck) = 0, ∃1≤ i < j ≤ k, ∃A ∈ atom(α),

A ∈ Ci,¬A ∈ Cj2r(C1,...,Ck), otherwise

If α = {C1, . . . ,Cm} is a clausal formula andn = |atom(α)| is a number ofatomic variables, then we note

det (α) = 2n −m∑k=1

(−1)k(∑

1≤<i1<...<ik≤mdif (Ci1, . . . , Cik )).

We name itthe determinant of the boolean formulaα [2, 3, 4].Let α = {C1, . . . , Cm} be a clausal formula andn = |atom(α)|. A clause

C ∈ α is called maximal iff it contains every possible literal (excludingrepetitions and the simultaneous occurrence of an atomic variable and itsnegation), i.e.|C| = n. A maximal calusal formulaα will contain onlymaximal clauses. Obviously, a maximal clause containn literals and amaximal clausal formula containsnc ≤ 2n maximal clauses.

Lemma 1.Letα = {C1, . . . , Cm} be a clause formula with n atomic variablesA1, . . . , An. If C ∈ α is not a maximal clause, i.e.|C| < n, there exists amaximal clausal formulaβ such that C =β.

Proof. Let λ be a symbol. The vectorx = (x1, . . . ,xn), wherexj ∈ {0, 1,λ}, j ∈ {1, . . . , n} is vector associated to the clauseC ∈ α. We define thevectorx = (x1, . . . ,xn), wherexj ∈ {0, 1, λ}, j ∈ {1, . . . , n} as follows: xj =0, if Aj ∈ C, xj = 1, if ¬ Aj ∈ C, andxj = λ, otherwise. Let us consider thespaceX = {(x1, . . . , xn)|xj ∈ {0, 1, λ}, j ∈ {1, . . . , n}}. As a consequence,we may uniquely attach a vectorx ∈ X to any clauseC ∈ α. Let C ∈ α be anot maximal clause, i.e.|C| < n. We have the∃k and∃1≤ j1 < . . .< jk ≤ nsuch thatxj1 = . . . =xjk = λ, wherex = (x1, . . . ,xn) is vector associated to theclauseC. Maximal clauses which are semantically equivalent with clauseCare generated by considering abinary tree having as root vectorx, associatedto clauseC.

The associated binary tree is: level 1 contains the two vectors obtainedfrom vectorx by substitution of theλ symbol in positionj1 with symbols

ALGORITHMS FOR TESTING SATISFIABILITY FORMULAS 155

Figure 1.

0 and 1 respectively; level 2 contains 4 vectors, obtained from the vectorsexisting at the preceding level, by substituting theλ symbol in positionj2with symbols 0 and 1 respectively; finally, levelk contains 2k vectors havingall components 0 or 1. Obviously, these are the vectors corresponding to themaximal clauses which will from the semantical equivalent withC formula(Figure 1). We finally obtain a set of vectors in whichλ does not occur andtherefore only the maximal clauses correspond to those vectors. �

Proposition 1. Let α = {C1, . . . , Cm} be a clausal formula with n atomicvariables A1, . . . , An. If α is a maximal clausal formula, then

α is unsatisfiable⇐⇒ m = 2n

α is satisfiable⇐⇒ m < 2n

Proof. If α is a maximal clausal formula, then contain only maximalclauses. These maximal clauses are obtained by generating the binary treeof Figure 1, starting from the root which corresponds to an empty clauseto which is associated vector (λ, . . . ,λ). In this case, the last level, namelyleveln, contains 2n vectors: (0, . . . , 0), . . . , (1, . . . , 1). Obviously, there existsa one-to-one application between the 2n maximal clauses and 2n possibleassignments (leveln). �

156 MARIN VLADA

Theorem 1.[1, 4] Letα = {C1, . . . , Cm} be a clausal formula. Thena) α is unsatisfiable⇐⇒ det(α) = 0b) α is satisfiable⇐⇒ det(α) 6= 0

Lemma 2.Letα = {C1, . . . , Cm} be a clausal formula. Thena) dif(Ci1, . . . ,Cik ) ≥ dif(Ci1, . . . ,Cik+1), ∀ik+1 ∈ {1, 2, . . . ,m }b) if dif(Ci1, . . . , Cik ) = 0, then dif(Ci1, . . . , Cik , Cik+1), = 0, ∀ik+1 ∈ {1, 2,

. . . ,m }c) if dif(C1, . . . ,Ci) = 0, then dif(C1, . . . ,Ci, Ck) = 0,∀k ∈ { i + 1, . . . ,m}

Proof. Obviously, from the definition of ‘dif’. �Let α = {C1, . . . , Cm} be a clausal formula. GivenR = Res(Ci, Cj ) theresolvent forCi and Cj , let β = R ∪ (α\{ Ci, Cj }). If ∃A ∈ Ci and¬A ∈Ci and¬A ∈ Cj , such that∀k ∈ {1, . . . , m} \{ i, j}, A, ¬A do not appear inCk, thenα = β. Formulaα is calledprimal boundedin A. It is known that afinite set of clausesSα is namedboundedif there exists, for any clauseCi ∈Sα which containsA ∈ Ci another clauseCj ∈ Sα, which contains¬A ∈ Cj ,i.e. for every liberal theoppositebelongs to another caluse ofSα. A literal Ais namedpure iff ¬A does not appear in any clause. The rule ofpure literalis also known. Therefore, if a literal is pure, we eliminate all the clauseswhich contain it and we obtain setβ. We haveβ is unsatisfiable⇐⇒ α isunsatisfiable.

Thus, we can suppose that the setSα of clauses of the formulaα isbounded. The valuedet(α) representing thedeterminant of formulaα canbe efficiently computed by attaching atree.

The associated tree is “oriented” to the left and it diminishes to the right,regarding the number of descendents. The tree has twolabels, one for namingthe clause, and the other for the number ofdif(Ci1, . . . ,Cik), whereCi1, . . . ,Cik is the path from the top to the current nodeCik .

We attach to a clauseCi ∈ α the number of bounded literals, i.e.

ni = |{Cj |j ∈ {1, . . . , m}, j 6= i, ∃A,A ∈ Ci,¬A ∈ Cj }|

Sort the numbersn1, . . . ,nm in a decreasing orderto obtain permutationσ such thatnσ(1) ≥ . . .≥ nσ(m). The associatedtree of det(α) is:

• the rootr is considered avirtual node(level 0);• the descendents of the root are the nodes representing, in a left to right

order,clauses Cσ(1), . . . ,nσ(m) (level 1);• the nodes of levelk≥ 2 represent descendents of those of level (k− 1)

such that a descendentCik , ik ∈ {1, . . . , m} as the property that [r, Ci1,. . . ,Cik ] is apath from rootr to nodeCik and thatni1 ≥ . . .≥ nik ;

ALGORITHMS FOR TESTING SATISFIABILITY FORMULAS 157

Figure 2.

• each nodeCik of the tree islabeledwith a second label (with the excep-tion of root noder), namely with the numberdif(Ci1, . . . ,Cik ), where [r,Ci1, . . . ,Cik ] is path from rootr to nodeCik .

According to this construction, the oriented tree is generated from left toright by decreasing the number of descendents as follows: level 1 containsC1m nodes, level 2 containsC2

m nodes, levelk ≥ 3 containsCkm nodes, whilethe last level contains theCσ(m) clause (Figure 2). Based on the tree attachedto valuedet(α), by applyingunitary resolutionand thepure-literal rule, in

158 MARIN VLADA

what follows we shall present an algorithm for testing the (un)satisfiability ofa propositional calculus formula clausally represented bySα = {C1, . . . ,Cm}.

Algorithm 1.

Input : Sα = {C1, . . . ,Cm}, atom(α) = {A|∃i ∈ {1, . . . , m}, A ∈ Ci or ¬A ∈ Ci }Output : Sα unsatisfiable orSα satisfiable,det(α) true assignments

begin. initialization:k← 0; s← 0; n←|atom(α)|;bounded← false; unitary← false; stop← falsewhile (stop 6= true) and (k< k) do

begin. compute:for i ∈ {1, . . . , m} do

ni ← |{ Cj |j ∈ {1, . . . , m}, j 6= i, ∃A, A ∈ Ci , ¬A ∈ Cj } |;Sort(n1, n2, . . . ,nm); /∗ Sort the values in a decreasing order∗/while (∃A, ∃i, ∃j, A ∈ Ci , ¬A ∈ Cj ) do

beginRulePureLit(Sα)) /∗ apply the ofpure-literal rule∗/bounded← true

endwhile (∃i ∈ {1, . . . , m}, Ci unitary) do

beginUnitaryRes(Sα) /∗ apply unitary resolution∗/unitary← true

endflag← falsewhile (∃A ∈ atom(α), ∃i, ∃j, A ∈ Ci , ¬A ∈ Cj )do

beginatom(α)← atom(α)\{ A}, n← n− 1R← Res(Ci , Cj ); Sα ← R∪ (Sα\{ Ci , Cj })m← m− 1; flag← true

end. compute:for i ∈ {1, . . . , m} do

ni ← |{ Cj | ∈ {1, . . . , m}, j 6= i, ∃A, A ∈ Ci , ¬A ∈ Cj } |;Sort(n1, n2, . . . ,nm); /∗ Sort the values in a decreasing order∗/k← k + 1; stop← truefor (1≤ i1 ≤ . . .≤ ik) do

beginCompute(dif(Ci1, . . . , Cik )) /∗ Compute the valuedif(Ci1, . . . , Cik )

∗/if odd(k) then s← s +dif(Ci1, . . . ,Cik )

elses← s− dif(Ci1, . . . ,Cik )stop← false

endend

ALGORITHMS FOR TESTING SATISFIABILITY FORMULAS 159

if s< 2n thenbeginwrite “Sα is satisfiable”;if (bounded= false) and (unitary = false) then

write “There are”, 2n − s, “true assignments”end

elsewrite “Sα is unsatisfiable”end

2. Algorithm for Testing Satisfiability of Clausal Formulas in SkolemNormal Form

Consider thefirst order languagesgiven by an alphabet which consists ofthe set of all formulas constructed from the symbols of the alphabet. LetFbe a finite set of functional symbols of arityn ≥ 0 (constants are functionsymbols of arity 0). LetV be an infinite countable set of variables andCan infinite countable set of constants. We denote byT (F, V) the set offirst-order terms, that is the freeF – algebra overV. If α is a formula, thenvar(α)denotes the set of variables ofα andconst(α) denotes the set of constantsof α:

var(α) = ∪t∈αvar(t), const (α) = ∪t∈αconst (t),wherevar(t) = {v ∈ V|v occurring in t} and const(t) = {c ∈ C|c occurring int}. If α is a formula, then we denote bySα = {C1, . . . ,Cm} the Skolem normalform of the formulaα, i.e.α = ∀x1 . . .∀xn(C1 ∧ . . .∧ Cm}, wherex1, . . . ,xnare all the variables occurring in clauses ofα, ∀i ∈ {1, . . . , m}, Ci = Li1 ∧. . .∧ Lini andLil , . . . ,Lini are literals such that∀i ∈ {1, . . . , m}, ∀j ∈ {1, . . . ,ni}, Lij = Aij or Lij =¬Aij , whereAij ∈ P is an atom andP is a finite setn-arypredicate symbols, i.e.

P = {p(t1, . . . , tn)|p : V n→ {false, true}, t1, . . . , tn ∈ T (F, V )}.We can suppose that we havevar(α) = {x1, . . . ,xn}, const(α) = {a1, . . . ,ak}.

Substitutions, denoted byθ , σ , . . . are theF-endomorphisms ofT (F, V)with finite domain onV. They are represented by a finite set of elementarysubstitutions. Substitutions defined the preorder ofpattern-matchingonT (F,V). The pattern-matching preorder on terms can be extended to substitutions.

When applied to a formula, the skolemization algorithm brings in newconstants and new functional symbols in the structure of the originalformula.

160 MARIN VLADA

Let α be a formula,Sα be the skolem normal form ofα andC ∈ Sα beclause which contains an unifiable set of literalslit (C) = {L1, . . . ,Lk}, k≥ 2.if substitutionθ is a most general unifier (mgu) of set lit (C), then the clauseCθ is called afactor of clauseC.

It is known that the factorization technique is used [5, 6] in the imple-mentation of deduction procedures and that, together with the resolutiontechniques, it is among the basics of some software applications for logicprogramming, being considered aninference rule.

Let C1, C2 ∈ Sα be two clauses with no common variable, thereforevar(C1) ∩ var(C2) = ∅, andL1, L2 be literalsL1 ∈ C1, L2 ∈ C2. If substitutionθ is anmgu for { L1, ¬L2} and {¬L1, L2} respectively, then the clause

ResL1,L2(C1, C2) = (C1\L1θ) ∪ (C2\L2θ),

is named thebinary resolventof clausesC1, C2 in relation to literalsL1, L2.The set ofresolventsof clausesC1, C2 will de denotedRes(C1, C2) and anybinary resolventof clausesC1, C2 which can be obtained in the followingsituation:a) ResL1,L2(C1, C2), L1 ∈ C1, L2 ∈ C2;b) ResL1,L2(C1, C2θ), L1 ∈ C1, L2 ∈ C2, ∃θ amgu for lit (C2);c) ResL1,L2(C1θ , C2), L1 ∈ C1, L2 ∈ C2, ∃θ amgu for lit (C1);d) ResL1,L2(C1θ , C2σ ), L1 ∈ C1, L2 ∈ C2, ∃θ a mgu for lit (C1), ∃σ a mgu

for lit (C2).In the first-order theory, letSα be theskolem normal formof formalα. We

denote byRes(C1, C2) the resolvent setfor clausesC1, C2. The resolvent setfor the clausal formulaSα is defined byRes∗(Sα):a) Res0(Sα ;b) Resn+1(Sα) = Res(Resn(Sα)), ∀n≥ 0;

Res∗(Sα) = ∪∞n=0Resn(Sα),

where we noteRes(M) = M ∪ { Res(C1, C2)|C1, C2 ∈ M}, M ⊆ Sα.It is known that (problem 8.5.7[5]), givenSα, a finiteset of clauses, there

exists ak≥ 0, such thatResk+j (Sα) = Resk(Sα), ∀j ≥ 0, thereforeRes∗(Sα) =Resk(Sα). We have that ifC1, C2, ∈ Sα, R∈ Res(C1, C2), thenSα ≡ (Sα ∪ { R})(where “≡” denotes the semantical equivalence). Furthermore,� ∈ Res∗(Sα)⇐⇒ Sα is unsatisfiable, where “�” denotes the empty clause [5, 6].

The algorithm for computingRes∗(Sα) is the resolution procedureorrefutation procedure. The conception and the structure of this algorithm arebased on the concept ofresolution derivationfrom setSα and on the theormof soundness and completeness of resolution[3, 6].

ALGORITHMS FOR TESTING SATISFIABILITY FORMULAS 161

Algorithm 2. (general deduction algorithm)

Input : Sα = {C1, . . . ,Cm}, the skolem normal formOutput : Res∗(Sα), k-the number of iterations,Sα satisfiable or unsatisfiable

begin. initialization:k← 0; R← { Res(C1, C2)|C1, C2 ∈ Sα}R∗ ←R ∪ Sαrepeat

M← { Res(C1, C2)|C1 ∈R, C2 ∈R∗}R←MR∗ ←R ∪R∗k← k + 1

until (R = ∅) or (� ∈R)if (R = ∅) then write “R”, k, Sα is satisfiable”

elsewrite “R∗, k, Sα is unsatisfiable”end

Let C1, C2 ∈ Sα be two clauses. Then clauseC1 subsumesclausesC2 ifexists substitutionθ so thatlit (C1θ) ⊂ lit (C2), which signifies that the literalsfrom C1θ exist inC2 as well.

We shall conceive a resolutive algorithm which implements theelimination of tautological clausesandsubsumed clausesduring the processof resolutive derivation of empty clause[5, 6].

Algorithm 3.

Input : Sα = {C1, . . . ,Cm} the skolem normal form of formulaαOutput : Res∗(Sα), n andSα unsatisfiability or satisfiability

begin/∗ initialization∗/n← 0; /∗ data count for the number of iterations in the derivations process∗/R← { Res(C1, C2)|C1, C2 ∈ Sα}R∗ ←R ∪ SαZ← Sα /∗ initial storing of clauses∗/nz← m; /∗ m= |Z| ∗/repeat /∗ process of elimination oftautological clausesin Z ∗/

C← Z /∗ the set of clauses after elimination∗/nc← nz /∗ the cardinal of setC ∗/for i = 1 to nz do

begin/∗ literals of clausesCi ∈ Z are determined∗/ni ← |atom(Ci )|. consideratom(Ci ) = {A1, . . . ,Ani }ind← 0 /∗ ind = 1, clauseCi containtscomplementary literals∗/k← 0 /∗ data count for traversing the literal list∗/repeat

j← k + 1; j← k

162 MARIN VLADA

repeatj← j + 1if (Ak = ¬Aj ) or (Aj = ¬Ak) then ind← 1;

until (j = ni − 1) or (ind = 1)until (k = ni ) or (ind = 1)if ind = 1 then

begin /∗ clauseCi is eliminated∗/C← C\{ Ci }nc← nc − 1end

end/∗ process of elimination ofsubsumed clausesof Z ∗/Z← C; nz← ncfor i = 1 to nz dobegin /∗ testing ifCi subsumesCj

∗/j← irepeat

j← j + 1 /∗ a new clause ofZ is analyzed∗//∗ variables inCj are determined∗/. considervar(Cj ) = {x1, . . . ,xk}. consider the set of constants {a1, . . . ,ak } having the property:{ a1, . . . ,ak} ∩ const(Ci } = ∅{ a1, . . . ,ak} ∩ const(Cj } = ∅. consider the substitutionθ = {x1← a1, . . . ,xk ← ak}/∗ literals which occur inCj are determined∗/. considerlit (Cj ) = {L1, . . . ,Lm}W← {¬L1θ , . . . ,¬Lmθ}S← { Ci }ind = 1 /∗ ind = 0, clauseCi does not subsume clauseCj

∗/while (� ∈ S) and (ind = 1) do

beginT ← { Rez(C′, C′′)|C′ ∈ S, C′′ ∈W}if (T = ∅) then ind← 0;S← T

enduntil (j = nz) or (ind = 1)if ind = 1 then

begin /∗ clauseCi is eliminated∗/C← C\ { Ci }nc ← nc − 1

endend/∗ process of applying the inference rules∗/R← CM← { Res(C1, C2)|C1 ∈R, C2 ∈R∗}R←MR∗ ←R ∪R∗Z←M /∗ the set of generated clauses∗/n← n + 1

ALGORITHMS FOR TESTING SATISFIABILITY FORMULAS 163

until (R = ∅) or (� ∈R)if (R = ∅) then write “R∗, n, Sα satisfiability”

elsewrite “R∗, n, Sα unsatisfiability”end

3. Conclusions

The new proposed algorithm for testing the satisfiability of propositionalformulas based on enumeration of solution (theorem 1) combined to the pure-literal rule and the one-literal rule and also the which consists in changingany formula in formula bounded. The valuedet(α) representing thedeter-minant of formulaα can be efficiently computed by attaching a tree. The newproposed algorithm for testing the satisfiability of clausal formulas in Skolemnormal form based on algorithm for computingRes∗(Sα). This algorithm istherefutation procedure. The originality in present’s algorithm is to combinedthis algorithm toelimination of tautological clausesandsubsumed clauses.

References

Andrei, S. T. (1995). The Determinant of the Boolean Formulae.Anal. Univ. BucharestXLIV :83–92.

Iwama, K. (1989). CNF Satisfiability test by Counting and Polynominal Average Time.SIAM.J. Comp.18(2): 385–391.

Chang, C. L. and Lee, R. C. (1973).Symbolic Logic and Mechanical Theorem Proving.Academic Press: New-York.

Dubois, O. (1991). Counting the Number of Solutions for Instance of Satisfiability.TheoreticalComputer Science81: 49–61.

Gallier, J. H. (1986).Logic for Computer Science. Foundations of Automatic Theorem Proving.Harper Row Publishers: New York.

Lloyd, J. W. (1987).Foundations of Logic Programming, Second, Extended Edition. SpringerVerlag.