OxiDD/oxidd

Set Operator Aliases

Opened this issue · 3 comments

I might just be unable to find this function, but the binary diff operator (including operator overload for the - operator) is missing for oxidd::bdd_function and oxidd::bcdd_function. This operator is equivalent to f & ~g. With complement edges, one can safely do this using and and not; but without them, one needs a function to not compute/construct ~g.

Ah, it's called imp_strict.

Note that compared to diff, imp_strict has operands swapped. I’d say this is a weak point of the current API, we should provide diff (and all other set operators) as aliases to the respective operators on Boolean functions. At some point, I also want to merge the BooleanVecSet trait (for sets of Boolean vectors; currently only part of the Rust API) into the BooleanFunction trait.

Yes, one can indeed interpret this issue as a missing alias.