4.2 Prime Implicate Recognition
4.2.3 Decomposition theorem
Of course, the problem with the na¨ıve approach just presented is that it doesn’t take into account the structure of λ, so we end up comparing a huge amount of irrelevant clauses, which is exactly what we were hoping to avoid. The algorithm that we propose later in this chapter avoids this problem by exploiting the informa- tion in the input formula and clause in order to cut down on the number of clauses to test. The key to our algorithm is the following theorem which shows us how the general problem of prime implicate recognition can be decomposed into the more specialized tasks of prime implicate recognition for propositional formulae, 2-formulae, and 3-formulae.
To simplify the presentation of the theorem, we let Π(ϕ) refer to the set of prime implicates of ϕ, and we use the notation λ\{l1, ..., ln} to refer to the clause obtained by removing each of the literals li from λ. For example (a ∨ b ∨ e ∨ 3c) \ {a, 3c} refers to the clause b ∨ e.
Theorem 4.2.3.
Let ϕ be a formula of Kn, and let λ =
γ1∨ ... ∨ γk∨ n _ i=1
(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)
(γ1∨ ... ∨ γk propositional) be a non-tautologous clause such that (a) χi,j ≡ χi,j ∨ ψi,1∨ ... ∨ ψi,li for all 1 ≤ i ≤ n and 1 ≤ j ≤ mi, and (b) there is no literal l in λ
such that λ ≡ λ \ {l}. Then λ ∈ Π(ϕ) if and only if the following conditions hold: 1. γ1∨ ... ∨ γk∈ Π(ϕ ∧ ¬(λ \ {γ1, ..., γk}))
2. 2i(χi,j∧ ¬ψi,1∧ ... ∧ ¬ψi,li) ∈ Π(ϕ ∧ ¬(λ \ {2χi,j}))
for every 1 ≤ i ≤ n and 1 ≤ j ≤ mi
3. 3i(ψi,1∨ ... ∨ ψi,li) ∈ Π(ϕ ∧ ¬(λ \ {3iψi,1, ..., 3iψi,li}))
for every 1 ≤ i ≤ n
For the proof of Theorem 4.2.3, we will require the following two lemmas: Lemma 4.2.4.
Let ϕ be a formula of Kn, and let λ =
γ1∨ ... ∨ γk∨ n _ i=1
(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)
be a non-tautologous clause such that γ1∨ ... ∨ γk is a propositional clause. Suppose furthermore that there is no literal l in λ such that λ ≡ λ \ {l}. If γ1∨ ... ∨ γk 6∈
112 4.2. Prime Implicate Recognition
Π(ϕ ∧ ¬(λ \ {γ1, ..., γk})), or 3i(ψi,1∨ ... ∨ ψi,li) 6∈ Π(ϕ ∧ ¬(λ \ {3iψi,1, ..., 3iψi,li}))
for some i, or 2i(χi,j∧ ¬ψi,1∧ ... ∧ ¬ψi,li) 6∈ Π(ϕ ∧ ¬(λ \ {2χi,j})) for some i and j,
then λ 6∈ Π(ϕ).
Proof. We will only consider the case where ϕ |= λ because if ϕ 6|= λ then we immediately get λ 6∈ Π(ϕ).
Let us first suppose that γ1∨ ... ∨ γk6∈ Π(ϕ ∧ ¬(λ \ {γ1, ..., γk})). Since ϕ |= λ, we must also have ϕ ∧ ¬(λ \ {γ1, ..., γk}) |= γ1 ∨ ... ∨ γk, so γ1 ∨ ... ∨ γk is an implicate of ϕ ∧ ¬(λ \ {γ1, ..., γk}). As γ1 ∨ ... ∨ γk is known not to be a prime implicate of ϕ ∧ ¬(λ \ {γ1, ..., γk}), it follows that there must be some clause λ′ such that ϕ ∧ ¬(λ \ {γ1, ..., γk}) |= λ′ |= γ1∨ ... ∨ γk 6|= λ′. Now consider the clause λ′′= λ′∨Wni=1(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi). We know that ϕ |= λ
′′ since ϕ ∧ ¬(λ \ {γ1, ..., γk}) |= λ′, and that λ′′ |= λ because λ′ |= γ1∨ ... ∨ γk. We also have λ 6|= λ′′since λ′ must be equivalent to a propositional clause (by Theorem 2.3.2) and the propositional part of λ (namely γ1∨ ... ∨ γk) does not imply λ′. It follows then that ϕ |= λ′′ |= λ 6|= λ′′, so λ 6∈ Π(ϕ).
Next suppose that 3s(ψs,1∨ ... ∨ ψs,ls) 6∈ Π(ϕ ∧ ¬(λ \ {3sψs,1, ..., 3sψs,ls})).
Now 3s(ψs,1 ∨ ... ∨ ψs,ls) must be an implicate of ϕ ∧ ¬(λ \ {3sψs,1, ..., 3ψs,ls})
since we have assumed that ϕ |= λ. As 3s(ψs,1∨ ... ∨ ψs,ls) is not a prime implicate
of ϕ ∧ ¬(λ \ {3sψs,1, ..., 3ψs,ls}), it follows that there is some λ
′ such that ϕ ∧ ¬(λ \ {3sψs,1, ..., 3ψs,ls}) |= λ ′ |= 3 s(ψs,1∨ ... ∨ ψs,ls) 6|= λ ′. Set λ′′ equal to γ1∨ ... ∨ γk∨ λ′∨ _ 1≤i≤n i6=s (3iψi,1∨ ... ∨ 3iψi,li) ∨ n _ i=1 (2iχi,1∨ ... ∨ 2iχi,mi)
Because of Theorem 2.3.2, we know that λ′is a disjunction of 3-literals, so according to Theorem 2.3.3 we must have λ 6|= λ′′ since 3
s(ψs,1∨ ... ∨ ψs,ls) 6|= λ
′. We also know that ϕ |= λ′′since ϕ ∧ ¬(λ \ {3sψs,1, ..., 3sψs,ls}) |= λ
′ and that λ′′|= λ since λ′|= 3s(ψs,1∨ ... ∨ ψs,ls). That means that ϕ |= λ
′′|= λ 6|= λ′′, so λ 6∈ Π(ϕ). Finally consider the case where 2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) 6∈ Π(ϕ ∧ ¬(λ \
{2χs,t})). We know that ϕ |= λ and hence that ϕ ∧ ¬(λ \ {2sχs,t}) |= 2sχs,t. Moreover, since ¬(λ \ {2sχs,t}) |= ¬3sψs,j for all 1 ≤ j ≤ sl, we have ϕ ∧ ¬(λ \ {2sχs,t}) |= 2s(χs,t ∧ ¬ψs,1∧ ... ∧ ¬ψs,ls). Thus, if 2s(χs,t∧ ¬ψs,1∧ ... ∧
¬ψs,ls) 6∈ Π(ϕ ∧ ¬(λ \ {2sχs,t})), it must mean that there is some λ
′ such that ϕ∧ ¬(λ \ {2sχs,t}) |= λ′ |= 2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) 6|= λ
′. By assumption, λ is not a tautology, so 2s(χs,t ∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) cannot be a tautology either.
As λ′ |= 2s(χs,t ∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) and 2s(χs,t ∧ ¬ψs,1 ∧ ... ∧ ¬ψs,ls) is not
2sζ1∨ ... ∨ 2sζp. Now let λ′′= γ1∨...∨γk∨ n _ i=1 (3iψi,1∨...∨3iψi,li)∨(λ ′∨ _ 1≤j≤ms j6=t 2sχs,j)∨ _ 1≤i≤n i6=s (2iχi,1∨...∨2iχi,mi)
As ϕ∧¬(λ\{2sχs,t}) |= 2sζ1∨...∨2sζp, it must be the case that ϕ |= λ′′. Also, we know that there can be no q such that χs,t |= ζq∨ ψs,1∨ ... ∨ ψs,ls because otherwise
we would have χs,t∧¬ψs,1∧...∧¬ψs,ls |= ζqand hence 2s(χs,t∧¬ψs,1∧...∧¬ψs,ls) |=
2sζ1∨...∨2sζp. Similarly, there can be no q 6= t such that χs,t|= χs,q∨ψs,1∨...∨ψs,ls
because this would mean that λ ≡ λ \ {2χs,t}, contradicting our assumption that there are no superfluous disjuncts in λ. It follows then by Theorem 2.3.3 that λ6|= λ′′. Thus, ϕ |= λ′′|= λ 6|= λ′′, which means λ 6∈ Π(ϕ).
Lemma 4.2.5.
Let ϕ be a formula of Kn, and let λ = γ1∨ ... ∨ γk∨
n _ i=1
(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)
be a non-tautologous clause such that γ1∨ ... ∨ γk is a propositional clause. Suppose furthermore that there is no literal l in λ such that λ ≡ λ \ {l}. Then if λ 6∈ Π(ϕ), either γ1∨ ... ∨ γk6∈ Π(ϕ ∧ ¬(λ \ {γ1, ..., γk})), or 3s(ψs,1∨ ... ∨ ψs,ls) 6∈ Π(ϕ ∧ ¬(γ1∨ ...∨γk∨(2s(χs,1∨ψs,1∨...∨ψs,ls)∨...∨2s(χs,ms∨ψs,1∨...∨ψs,ls))∨ W 1≤i≤n i6=s (3i ψi,1∨ ...∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)) for some s, or 2i(χi,j∧ ¬ψi,1∧ ... ∧ ¬ψi,li) 6∈
Π(ϕ ∧ ¬(λ \ {2χi,j})) for some i and j.
Proof. We will only consider the case where ϕ |= λ because if ϕ 6|= λ then we immediately get the result. Suppose then that λ 6∈ Π(ϕ) and ϕ |= λ. By Definition 3.2.1, there must be some λ′ = γ1′ ∨ ... ∨ γ′
o∨ Wn
i=1(3iψi,1′ ∨ ... ∨ 3iψ′i,pi∨ 2iχ
′ i,1∨ ...∨ 2iχ′i,qi) such that ϕ |= λ
′ |= λ 6|= λ′. Since λ 6|= λ′, by Proposition 2.3.3 we know that either γ1∨ ... ∨ γk 6|= γ1′ ∨ ... ∨ γo′, or ψs,1∨ ... ∨ ψs,ls 6|= ψ
′
s,1∨ ... ∨ ψs,p′ s
for some s, or for some s and t we have χs,t6|= χ′s,u∨ ψ′s,1∨ ... ∨ ψ′s,ps for all u.
We begin with the case where γ1 ∨ ... ∨ γk 6|= γ1′ ∨ ... ∨ γo′. As λ′ |= λ and 6|= λ, by Theorem 2.3.3, we know that for every 1 ≤ i ≤ n: ψ′
i,1 ∨ ... ∨ ψi,p′ i |=
ψi,1 ∨ ... ∨ ψi,li and for every 1 ≤ u ≤ qi there is some 1 ≤ v ≤ mi such that
χ′i,u|= ψi,1∨ ... ∨ ψi,li∨ χi,v. It follows then (also by Theorem 2.3.3) that ϕ |= λ
′ |= γ1′ ∨ ... ∨ γ′
o∨ Wn
i=1(3iψi,1∨ ... ∨ 3iψi,li ∨ 2iχi,1∨ ... ∨ 2iχi,mi), and hence that
ϕ∧ ¬(λ \ {γ1, ..., γk}) |= γ1′∨ ... ∨ γo′. As γ1′ ∨ ... ∨ γo′ |= γ1∨ ... ∨ γk6|= γ1′∨ ... ∨ γo′, we have found an implicate of ϕ ∧ ¬(λ \ {γ1, ..., γk}) which is stronger than γ1∨ ... ∨ γk, so γ1∨ ... ∨ γk6∈ Π(ϕ ∧ ¬(λ \ {γ1, ..., γk})).
114 4.2. Prime Implicate Recognition
Next suppose that ψs,1∨ ... ∨ ψs,ls 6|= ψ
′
s,1∨ ... ∨ ψs,p′ s. As λ
′ |= λ and 6|= λ, it follows from Theorem 2.3.3 that γ′1∨ ... ∨ γ′
o|= γ1∨ ... ∨ γkand for every 1 ≤ i ≤ n: ψ′i,1∨ ... ∨ ψ′i,pi |= ψi,1∨ ... ∨ ψi,li and for every 1 ≤ u ≤ qi there is some 1 ≤ v ≤ mi
such that χ′i,u|= ψi,1∨ ... ∨ ψi,li∨ χi,v. We thereby obtain
ϕ|= λ′ |= γ1∨ ... ∨ γk∨ (3sψ′s,1∨ ... ∨ 3sψs,p′ s)
∨ (2s(χs,1∨ ψs,1∨ ... ∨ ψs,ls) ∨ ... ∨ 2s(χs,ms∨ ψs,1∨ ... ∨ ψs,ls))
∨ _
1≤i≤n i6=s
(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)
From this, we can infer that
ϕ∧ ¬(γ1∨ ... ∨ γk∨ (2s(χs,1∨ ψs,1∨ ... ∨ ψs,ls) ∨ ... ∨ 2s(χs,ms ∨ ψs,1∨ ... ∨ ψs,ls))
∨ _
1≤i≤n i6=s
(3iψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi))
|= 3sψ′s,1∨ ... ∨ 3ψ′s,ps |= 3sψs,1∨ ... ∨ 3ψs,ls 6|= 3sψ ′ s,1∨ ... ∨ 3ψ′s,ps As 3sψs,1∨ ... ∨ 3sψs,ls ≡ 3s(ψs,1∨ ... ∨ ψs,ls), it follows that 3s(ψs,1∨ ... ∨ ψs,ls) 6∈ Π(ϕ ∧ ¬(γ1∨ ... ∨ γk∨ (2s(χs,1∨ ψs,1∨ ... ∨ ψs,ls) ∨ ... ∨ 2s(χs,ms∨ ψs,1∨ ... ∨ ψs,ls)) ∨ W 1≤i≤n i6=s (3i
ψi,1∨ ... ∨ 3iψi,li∨ 2iχi,1∨ ... ∨ 2iχi,mi)).
Finally suppose that χs,t 6|= χ′s,u∨ ψ′s,1 ∨ ... ∨ ψ′s,ps for all u and furthermore
that ψi,1 ∨ ... ∨ ψi,li |= ψ
′
i,1 ∨ ... ∨ ψ′i,pi for all 1 ≤ i ≤ n (we have already shown
the result holds whenever ψi,1 ∨ ... ∨ ψi,li 6|= ψ
′
i,1 ∨ ... ∨ ψi,p′ i for some i). Now
2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) is an implicate of ϕ ∧ ¬(λ \ {2sχs,t})) so to show that
2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) is not a prime implicate of ϕ ∧ ¬(λ \ {2sχs,t})), we
must find some stronger implicate. Set S = {v ∈ {1, ..., qs} : χ′s,v|= χs,t∨ ψs,1∨ ... ∨ ψs,ls and χ
′
s,v 6|= χs,w∨ ψs,1∨ ... ∨ ψs,ls for w 6= t}. We note that there must be at
least one element in S as we have assumed ϕ 6|= λ \ {2sχs,t}. We also know that: • γ′
1∨ ... ∨ γo′ |= γ1∨ ... ∨ γk • for every 1 ≤ i ≤ n: ψ′
i,1∨ ... ∨ ψi,p′ i |= ψi,1∨ ... ∨ ψi,li
• for every i 6= s and 1 ≤ v ≤ qi: there is some w such that χ′i,v |= χi,w∨ ψi,1∨ ... ∨ ψi,li
• for every 1 ≤ v ≤ qs with v 6∈ S: there is some w 6= t such that χ′s,v |= χs,w∨ ψs,1∨ ... ∨ ψs,ls
• for every v ∈ S: χ′
From these statements, we get that ϕ|= λ′ |= γ1∨ ... ∨ γk∨ n _ i=1 (3iψi,1∨ ... ∨ 3iψi,li)∨ _ 1≤i≤n i6=s (2iχi,1∨ ... ∨ 2iχi,mi) ∨ _ 1≤w≤ms w6=t 2sχs,w∨ _ v∈S 2sχ′s,v
It follows that ϕ ∧ ¬(λ \ {2sχs,t}) |= Wv∈S2s(χ′s,v ∧ ¬ψs,1 ∧ ... ∧ ψs,ls), which
means thatWv∈S2s(χ′s,v∧ ¬ψs,1∧ ... ∧ ψs,ls) is an implicate of ϕ ∧ ¬(λ \ {2sχs,t}).
Moreover,Wv∈S2s(χ′s,v∧ ¬ψs,1∧ ... ∧ ψs,ls) |= 2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) since
by construction χ′s,v |= χs,t∨ ψs,1∨ ... ∨ ψs,ls for every v ∈ S.
It remains to be shown that 2s(χs,t ∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) 6|=
W
v∈S2s(χ′s,v∧ ¬ψs,1 ∧ ... ∧ ψs,ls). Suppose for a contradiction that the contrary holds. Then
2s(χs,t∧¬ψs,1∧...∧¬ψs,ls) |=
W
v∈S2s(χ′s,v∧¬ψs,1∧...∧ψs,ls), so by Theorem 2.3.1,
there must be some v ∈ S for which χs,t∧¬ψs,1∧...∧¬ψs,ls |= χ
′
s,v∧¬ψs,1∧...∧¬ψs,ls.
But then χs,t |= χ′s,v∨ ψs,1∨ ... ∨ ψs,ls, and thus χs,t|= χ
′
s,v∨ ψs,1′ ∨ ... ∨ ψs,p′ s since
we have assumed ψs,1 ∨ ... ∨ ψs,ls |= ψ
′
s,1∨ ... ∨ ψ′s,ps. This contradicts our earlier
assumption that χs,t6|= χ′s,u∨ ψ′s,1∨ ... ∨ ψs,p′ s for all u. Thus, we have shown that
2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) 6|=
W
v∈S2s(χ′s,v∧ ¬ψs,1∧ ... ∧ ψs,ls), which means
2s(χs,t∧ ¬ψs,1∧ ... ∧ ¬ψs,ls) 6∈ Π(ϕ ∧ ¬(λ \ {2sχs,t})).
Proof of Theorem 4.2.3. The forward direction was shown in Lemma 4.2.4. The other direction follows from Lemma 4.2.5 together with the hypothesis that χi,j ≡ χi,j∨ ψi,1∨ ... ∨ ψi,li for all 1 ≤ i ≤ n and 1 ≤ j ≤ mi(which ensures that ϕ ∧ ¬(γ1∨
...∨γk∨(2s(χs,1∨ψs,1∨...∨ψs,ls)∨...∨2s(χs,ms∨ψs,1∨...∨ψs,ls))∨
W 1≤i≤n
i6=s (3i ψi,1∨ ...∨ 3iψi,li ∨ 2iχi,1∨ ... ∨ 2iχi,mi) ≡ ϕ ∧ ¬(λ \ {3sψs,1, ..., 3sψs,ls})).
We remark that the restriction of Theorem 4.2.3 to clauses for which χi,j ≡ χi,j ∨ ψi,1 ∨ ... ∨ ψi,li for all i and j and for which λ 6≡ λ \ {l} for all disjuncts
l is required. If we drop the former restriction, then there are some non-prime implicates that satisfy all three conditions, as the following example demonstrates. Example 4.2.6.
Consider the formula ϕ = 3(a ∧ b ∧ c) ∨ 2a and the clause λ = 3(a ∧ b) ∨ 2(a ∧ ¬b). It can be easily shown that λ is an implicate of ϕ, but λ is not a prime implicate of ϕ since there exist stronger implicates (e.g. ϕ itself). Nonetheless, it can be verified that both 2(a ∧ ¬b ∧ ¬(a ∧ b)) ∈ Π(ϕ ∧ ¬(λ \ {2(a ∧ ¬b)})) and 3(a ∧ b) ∈ Π(ϕ ∧ ¬(λ \ {3(a ∧ b)})).
116 4.2. Prime Implicate Recognition
If we drop the requirement that λ 6≡ λ \ {l} for all disjuncts l, then there are prime implicates which fail to satisfy one of the three conditions, as witnessed by the following example.
Example 4.2.7.
Consider the formula 2a and the clause 2a ∨ 2(a ∧ b). We have 2(a ∧ b) 6∈ Π(2a ∧ ¬(2a)) even though 2a ∨ 2(a ∧ b) is a prime implicate of 2a.
These two restrictions are without loss of generality however since every clause can be transformed into an equivalent clause satisfying them. For the first restric- tion, we replace each 2iχi,j by 2i(χi,h∨ ψi,1∨ ... ∨ ψi,li), thereby transforming a
clause γ1 ∨ ... ∨ γk ∨Wni=1(3iψi,1∨ ... ∨ 3iψi,li ∨ 2iχi,1 ∨ ... ∨ 2iχi,mi) into the
equivalent γ1∨ ... ∨ γk∨Wni=1(3iψi,1∨ ... ∨ 3iψi,li∨ 2i(χi,1∨ ψi,1∨ ... ∨ ψi,li) ∨ ... ∨
2i(χi,mi∨ ψi,1∨ ... ∨ ψi,li)). Then to make the clause satisfy the second restriction,
we simply remove from λ those disjuncts l satisfying λ ≡ λ \ {l} until no such disjuncts remains.
Theorem 4.2.3 shows us how prime implicate recognition can be split into three more specialized sub-tasks, but it does not tell us how to carry out these tasks. Thus, in order to turn this theorem into an algorithm for prime implicate recogni- tion, we need to figure out how to test whether a propositional clause, a 2-literal, or a 3-literal is a prime implicate of a formula.
4.2.4 Prime implicate recognition for