Each symbolic set should be tagged with a secure hash of the initial Boolean network (something like a commit hash). This hash is checked during every operation and ensures we never perform operations on incompatible BDDs, even if they have exactly the same number of variables. Furthermore, this allows us to save/reload sets from memory and validate them against the currently loaded network without saving the whole network.
Each symbolic set should be tagged with a secure hash of the initial Boolean network (something like a commit hash). This hash is checked during every operation and ensures we never perform operations on incompatible BDDs, even if they have exactly the same number of variables. Furthermore, this allows us to save/reload sets from memory and validate them against the currently loaded network without saving the whole network.