A canonical generalization of OBDDs
Florent Capelli, YooJung Choi, Stefan Mengel, Martín Muñoz, Guy
Van den Broeck
CRIL, Université d’Artois
Dagstuhl Seminar 26221
May, 2026
Tree Decision Diagrams is a new datastructure for representing Boolean functions:
TDDs improves the tractability of OBDDs without sacrificing much.
Fix a vtree shape (variables at the leaves).
Input nodes: labeled by literals (constants allowed under strict conditions, see later).
A node: list of pairs of nodes from the children bags. Here, it computes that is .
Another node computing that is
Nodes in each bag! One output node in the root. Here it computes
Model of
is not a model of
Non deterministic TDD (nTDD): only a rigid normal form of smooth structured DNNF.
Determinism: Each pair of sibling nodes can be the input of at most one node.
Same node can be used twice, as long as it is used with another sibling.
For each assignment of variables and every bag , at most one node in bag is satisfied.
For each vtree node , add a -node containing all missing pairs; bottom up!
Bottom up: also add missing pairs with red nodes below!
Red nodes accept the rejected assignments at each level.
Root red node computes the negation (new output).
Complexity: where is the width, ie, maximum number of nodes in a bag.
Two nodes are twins if they have the same siblings for every parent node.
Same sibling for this parent.
But not for this one: these two nodes are not twins.
Same sibling for this parent.
And for this one. They are twins!
We can merge them. This does not change the function computed.
Theorem.
Iteratively merging twins until no twins remains converges to a canonical and minimal TDD computing the same function.
In particular: TDDs can be minimized in polynomial time.
Next slides: why is the result canonical and minimal?
Let and . Subfunctions of on :
Lower bound:
For two models of node , .
and define the same subfunction!
At least nodes in bag for each
Upper bound:
If one bag has size , the TDD must contain one pair of twins.
Iteratively contracting twins converges to a canonical minimal TDD!
Angluin-style learning algorithm.
Build the canonical TDD of size of a Boolean function with equivalence queries to the oracle.
Bottom up algorithm with constraints represented by TDDs over the same vtree.
FPT compilation with bounded incidence treewidth:
Given a TDD of width and .
We can construct a TDD computing and of width at most !
Applications to QBF solving!
And in practice? TiDiDi compiler! Stay tuned with Guy!