27.09.2013 Views

a modern C++ library for the manipulation of Boolean functions

a modern C++ library for the manipulation of Boolean functions

a modern C++ library for the manipulation of Boolean functions

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.2.5 Entailed, disentailed and equivalent variables<br />

Operations that search and eliminate entailed, disentailed and equivalent variables are<br />

pretty straight<strong>for</strong>ward, provided that <strong>the</strong> internal representation is already normalized:<br />

that’s why <strong>the</strong>se operations start with a call to <strong>the</strong> normalization algorithm. The<br />

operations do nothing more than returning and/or clearing <strong>the</strong> corresponding part <strong>of</strong> <strong>the</strong><br />

internal representation, with <strong>the</strong> only exception coming from <strong>the</strong> fact that entailed and<br />

disentailed variables are all equivalent to each o<strong>the</strong>r.<br />

4.2.6 Projections and variable renaming<br />

Operations that rename variables can be easily implemented by renaming all components <strong>of</strong><br />

<strong>the</strong> internal representation separately. Although renaming with respect to an equivalence<br />

relation may denormalize <strong>the</strong> internal representation, shift renaming <strong>of</strong> course does not.<br />

For projections, <strong>the</strong> main problem is that we cannot project all components separately,<br />

as it is proven that this may alter <strong>the</strong> semantics <strong>for</strong> <strong>the</strong> case where we project away<br />

variables that appear in more than one component. Note that this case may also occur in<br />

a normalized representation whenever we project away a leader <strong>for</strong> L that also labels a<br />

node in n. Our solution is to start by normalizing <strong>the</strong> representation, <strong>the</strong>n replacing each<br />

occurence <strong>of</strong> all <strong>of</strong> <strong>the</strong>se leaders l in n with <strong>the</strong> minimum variable that is equivalent to l<br />

in L and is not going to be projected away. Afterwards we can project on each component<br />

separately.<br />

4.2 Algorithms with composite representations 42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!