Binary Decision Diagrams and MUX Networks
April 26, 2021

A binary decision diagram turns a Boolean function into a network of explicit choices. Each node asks for one variable and selects the next path, so the entire structure maps directly onto multiplexers and if-then-else expressions.

Brian Greenforest reached this structure through object-oriented cellular automata and recognized its power for both electronic design automation and programming-language conditionals.

A MUX Is a Decision Node

One selector chooses between two continuations. Ordering and sharing those choices can collapse repeated subfunctions, producing a canonical and often compact representation of the original logic.

That direct mapping makes BDDs easier to inspect than many AND-inverter, majority-inverter, disjunctive-normal, or conjunctive-normal forms. The graph shows the actual decisions that govern the result.

Carry Decision Structure Across the Stack

EDA tools can use BDDs for equivalence, synthesis, verification, and optimization. Languages can expose the same structure so programmers reason about conditional logic before it disappears into instruction streams.

Explore MUX algebra and the connected Boolean work, then bring a conditional-heavy design into the decision-diagram model.

Reduce Binary Decision Diagrams and MUX Networks to the MUX Switching Algebra

MUX Algebra and the Boolean construction show how one switching primitive grows into a complete computational fabric.

Boolean Algebra Is All That Is Required · https://lnkd.in/gihhg7i · MUX Algebra

Originally posted on LinkedIn

Brian Greenforest · (2021-04-26 22:18:41 UTC)

Open the original LinkedIn post · LinkedIn activity 6792572656123305984

LinkedIn status when archived: Edited ยท Visible to anyone on or off LinkedIn.

Two years ago, after analyzing the object-oriented-inspired cellular automata I made, I reinvented the wheel called "Binary decision diagram". Turns out, it's also a much simpler implementation comparing to MIG, AIG, DNF, CNF... Just a network of multiplexers, or "if-then-else" trees. The use in EDA is interesting though, allowing to rethink the way we define the conditionals in PL. https://lnkd.in/gihhg7i

Original LinkedIn media

table
Photo attached to the original LinkedIn post. Open the saved full-resolution image.

Comments added by Brian Greenforest on LinkedIn

These 2 comments were also preserved verbatim from Brian Greenforest’s LinkedIn data export or the public post page.

It's so great to see developments and generalizations in this area: https://www.researchgate.net/publication/337826088_Functional_Decision_Diagrams_A_Unifying_Data_Structure_For_Binary_Decision_Diagrams

View the LinkedIn post

And this: https://link.springer.com/content/pdf/10.1007%2F978-3-319-89960-2_5.pdf

View the LinkedIn post