|
Logic & Semantics |
This talk presents a tautology checking algorithm that is related both to Stalmarck's algorithm and the mechanism described by Kunz and Stoffel in "Reasoning in Boolean Networks". The algorithm uses as its central data structure the conjunction of a set of terms, with each term being a relation over a small number of variables. In Stalmarck's algorithm the relation is limited to Boolean operators with up to two operand variables and one result variable. The new algorithm generalises this to allow arbitrary relations over three boolean variables, and then further extended to allow relations over as many as eight boolean variables. These extensions greatly increase the number and power of the inference rules that may be applied. Efficient processing relies on the use of bit patterns (8- or 256-bit) to represent the relations.
Another extension is to increase the richness of the variable mapping information obtained from the inference rule applications. In Stalmarck's algorithm, the mapping information is a set of equalities/inequalities between pairs of variables. This is extended to arbitrary relations over boolean pairs.
The talk may include test results showing how these extensions effect the depth of recursion needed and the number of terms required at each level.
Keywords
Tautology checking, Boolean satisfiability, Boolean networks,
digital circuit verification, MCPL.