https://gist.github.com/thesz/8b68b09df36c6b1bfca757dea7485bbf - операции с ZDD, как я их представляю.
Содержат объединение, разность, пересечение, поиск наименьшего подмножества (подмножеств, на самом деле) и ещё операцию "распределения" (distribution), это декартово произведение двух множеств подмножеств с применением операции объединения подмножеств.
Как легко увидеть, эта красота очень, очень динамически программируется. ;)
Если хочешь написать операцию над ZDD, подумай, как она выглядит над частью ZDD.