This package implements reduced ordered binary decision diagrams (ROBDDs). It should demonstrate the implementation of ROBDDs for teaching purposes. So its main focus is not on efficiency, but on a clear structure and an API that allows a safe use. The principle techniques for gaining performance, however, are implemented. In the code, comments at some positions indicate how performance could be improved (by sacrificing clarity or safe use).

Still missing

Note that ROBBD could be represented even more efficiently, by exploiting the effect that the negated ROBDD is exactly the same except for exchanging the terminal nodes. The procedures, however, become a little bit more complicated. Therefore, this optimization is not built into this implementation of ROBDDs.