clause, and the conjunction of all such clauses is a
CNF equivalent of the formula represented by the trie.
A tautology is logically equivalent to the empty
sentence (empty conjunction) and thus has no impli-
cates. A contradiction, on the other hand, is logi-
cally equivalent to the empty clause (empty disjunc-
tion). Thus a contradiction implies all clauses, and the
empty clause is its only prime implicate.
In this paper, we assume that a variable ordering
has been selected, and that nodes along a branch are
labeled consistently with that ordering.
A reduced implicate trie (ri-trie) is a trie whose
branches represent the relatively prime implicates
(Murray and Rosenthal, 2007a): If F is a logical
formula, then a relatively prime implicate is one for
which no proper prefix (with respect to the variable
ordering) is also an implicate. If the leaf node of a
branch in an ri-trie is labeled p
i
, then every extension
with variables of index greater than i is a branch in the
complete implicate trie of F . These extensions corre-
spond to implicates of F that are not relatively prime
and that are represented implicitly by that branch in
the ri-trie.
The ri-trie of a logical formula F can be obtained
with the recursively defined RIT operator, introduced
in (Murray and Rosenthal, 2005).
RIT(F ,V ) =
F V =
/
0
v
i
∨ RIT(F [0/v
i
],V − {v
i
})
∧
¬v
i
∨ RIT(F [1/v
i
],V − {v
i
})
∧
RIT((F [0/v
i
] ∨ F [1/v
i
]),V − {v
i
})
v
i
∈ V
Note that the third conjunct of RIT is RIT of the
disjunction of the first two. As a result, the next
lemma tells us that the branches of the third subtrie
are precisely those that appear in both of the first two.
The notation Imp(F ) is used for the set of all impli-
cates of F .
Lemma 1. Given logical formulas F and G,
Imp(F ) ∩ Imp(G) = Imp(F ∨ G).
Given two formulas F and G, fix an ordering of
the union of their variable sets, and let T
F
and T
G
be the corresponding ri-tries. The intersection of T
F
and T
G
is defined to be the ri-trie (with respect to the
given variable ordering) that represents the intersec-
tion of the implicate sets. The intersection of two tries
(with the same variable ordering) is produced by the
INT operator introduced in (Murray and Rosenthal,
2007b).
Theorem 1. Let T
F
and T
G
be the respective ri-tries
of F and G (with the same variable ordering). Then
INT(T
F
,T
G
) is the intersection of T
F
and T
G
; in par-
ticular, INT(T
F
,T
G
) is the ri-trie of F ∨ G (with re-
spect to the given variable ordering).
Theorem 1 provides a formal basis for a definition
of the RIT operator that produces ri-tries using inter-
section. It is obtained from the earlier definition by re-
placing the third conjunct by INT(RIT(F [0/v
i
],V −
{v
i
}), RIT(F [1/v
i
],V − {v
i
})).
3 UPDATING ri-TRIES
It is typical in the knowledge compilation paradigm
to assume that the intractable part of the processing is
done only once (or at least not very often). In the ab-
sence of an efficient updating technology, this favors
knowledge bases that are stable; i.e., a single compi-
lation is expected to provide a repository that remains
useful over a large number of queries. The original
knowledge base can always be modified and then re-
compiled, but in general this is expensive. As a result,
updates that can be installed into the compiled knowl-
edge base without recompiling have the potential to
widen applicability considerably.
Four update operations for ri-tries were intro-
duced in (Murray and Rosenthal, 2007b): Intersec-
tion, substitution of a truth constant, variable reorder-
ing, and conjunction with a clause. Two update oper-
ations are described in Sections 3.1 and 3.2: negation
and conjunction.
3.1 Negation
The RIT operator by itself produces a trie for a for-
mula F in which every leaf is labeled 0 or 1. Truth
functional simplifications then yield the desired ri-
trie. Without the simplifications, the trie is called a
constant leaf trie (cl-trie). Merely swapping the 0’s
and 1’s in a cl-trie will produce a representation of
¬F , but this is not the cl-trie of ¬F . The difficulty
is the third conjunct. The NEG operator recursively
simplifies the first two conjuncts and then applies the
INT operator to produce the third. Below, the formal
definition of NEG uses the representation of the trie
T rooted at p
i
as the 4-tuple hp
i
, T
+
, T
−
, T
0
i, see
(Murray and Rosenthal, 2007b).
NEGhr,
/
0,
/
0,
/
0i = h¬r,
/
0,
/
0,
/
0i
NEGhr, p,
/
0,
/
0i = hr,
/
0,¬p,
/
0i
NEGhr,
/
0,¬p,
/
0i = hr, p,
/
0,
/
0i
NEGhr, p, h¬p,T
+
,T
−
,T
0
i,h0,T
+
,T
−
,T
0
ii =
hr,
/
0,NEGh¬p,T
+
,T
−
,T
0
i,
/
0i
REDUCED IMPLICATE TRIES AND LOGICAL OPERATIONS
457