adiar
adiar copied to clipboard
Add `bdd_project`
We currently provide bdd_exists
and bdd_forall
. But, the end-user may rather want to specify what variables should be left at the end (as a predicate, generator, or iterator) similar to the zdd_project
function.
- [ ] Add
bdd_project(const bdd&, const predicate<bdd::label_type>&)
- [ ] Add
bdd_project(const bdd&, const generator&)
- [ ] Add
bdd_project(const bdd&, ForwardIt, ForwardIt)
Doing so only requires inheriting from the bdd_quantify_policy and flip the quantify_onset variable. Of course, relevant unit tests should also be added.
Additional context This feature exists in Sylvan and MONA.