reducedOf

Returns a BinaryDecisionDiagramBuilder instance that applies reduction optimizations through the reduce algorithm, and delegates the actual construction logic of each node to delegate. By default, delegate is set as defaultOf. The following reductions are performed:

  • Removal of duplicate variable nodes

  • Removal of duplicate terminal nodes

  • Removal of redundant variable nodes, which are BinaryDecisionDiagram.Variable nodes where low and high point to the same node

This is what all the operators in BinaryDecisionDiagramOperators.kt (e.g. and, or, not, apply) use internally to keep the result of each operation a canonical Reduced Ordered BDD (ROBDD).

Return

a new, reduction-applying BinaryDecisionDiagramBuilder.

Parameters

delegate

the builder actually constructing each node, before reduction is applied on top of it. Defaults to defaultOf.