The primary purpose is to find untenable assumptions to be excluded
from the Boolean minimization process. For this reason, the input is most of the times
a truth table, but for demonstration purposes it can also be a simple matrix having
column names.
It started as a function to find rows that are subsets of a given SOP expression, and
it developed to cover even more untenable asumptions.
Subset rows can be anything, from remainders to the observed configurations (positive
output, negative output and contradictions), but the function returns only the
subset configurations which do not have a positive output.
It might ocasionally find negative output configurations or contradictions, but that
doesn't have any side effect because they are going to be excluded from the minimization
anyways, unless contradictions are included in the minimization. The only category that
really matters if they are identified or not, are the positive output configurations.
The contradictory simplifying assumptions (CSAs) are those which are used for both the
presence and the absence of the outcome, while simultaneous subset relations (SSRs)
when observed configurations are sufficient for both the presence and the absence of
the outcome. CSAs and SSRs are incoherent conterfactuals, part of a category called
Untenable Assumptions.
This function takes does what is normally done with a series of commands, in a
more integrated and systematic way.
Providing a truth table is sufficient to perform all these tasks, because a truth
table already contains all necessary information of how it was produced, most importantly
the inclusion cut-off(s). By default, it uses the same options to produce a truth table for
the negation of the outcome (if the input truth table was created for its presence, or the
other way round), and minimizes both to inspect their simplifying assumptions to
detect which are contradictory.
Identical simplifying assumptions that found in both parsimonious solutions are declared as
contradictory. Observed configurations that are sufficient for both the presence and the absence
of the outcome are incoherent because of the simultaneous subset relations problem.
The following types of untenable assumptions can be searched for:
0 |
all of them |
1 |
subsets of a given expression (default) |
2 |
contradictory simplifying assumptions |
3 |
simultaneous subset relations |
To find contradictory simplifying assumptions, a truth table for the negated outcome is
constructed, using the incl.cut
argument from the obj
input object. If the inclusion cut-off has a single value, the same is used for the negated
outcome, and if it has two values the second is used.
If very specific cutoff values are needed for the negation of the outcome, these can be provided
via the ...
argument, that will be passed to function truthTable()
.