public abstract class AbstractBooleanFormulaManager<TFormulaInfo,TType,TEnv> extends Object implements BooleanFormulaManager
| Modifier and Type | Field and Description |
|---|---|
protected FormulaCreator<TFormulaInfo,TType,TEnv> |
formulaCreator |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractBooleanFormulaManager(FormulaCreator<TFormulaInfo,TType,TEnv> pCreator) |
| Modifier and Type | Method and Description |
|---|---|
BooleanFormula |
and(BooleanFormula pBits1,
BooleanFormula pBits2)
Creates a formula representing an AND of the two arguments.
|
BooleanFormula |
and(Collection<BooleanFormula> pBits) |
protected abstract TFormulaInfo |
and(TFormulaInfo pParam1,
TFormulaInfo pParam2) |
protected TFormulaInfo |
andImpl(Collection<TFormulaInfo> pParams) |
BooleanFormula |
equivalence(BooleanFormula pBits1,
BooleanFormula pBits2)
Creates a formula representing an equivalence of the two arguments.
|
protected abstract TFormulaInfo |
equivalence(TFormulaInfo bits1,
TFormulaInfo bits2) |
protected FormulaCreator<TFormulaInfo,TType,TEnv> |
getFormulaCreator() |
<T extends Formula> |
ifThenElse(BooleanFormula pBits,
T f1,
T f2)
Creates a formula representing "IF cond THEN f1 ELSE f2"
|
protected abstract TFormulaInfo |
ifThenElse(TFormulaInfo cond,
TFormulaInfo f1,
TFormulaInfo f2) |
BooleanFormula |
implication(BooleanFormula pBits1,
BooleanFormula pBits2) |
protected TFormulaInfo |
implication(TFormulaInfo bits1,
TFormulaInfo bits2) |
boolean |
isFalse(BooleanFormula pBits)
Check, if the formula is the formula "FALSE".
|
protected abstract boolean |
isFalse(TFormulaInfo bits) |
boolean |
isTrue(BooleanFormula pBits)
Check, if the formula is the formula "TRUE".
|
protected abstract boolean |
isTrue(TFormulaInfo bits) |
BooleanFormula |
makeBoolean(boolean value)
Returns a
BooleanFormula representing the given value. |
protected abstract TFormulaInfo |
makeBooleanImpl(boolean value) |
BooleanFormula |
makeVariable(String pVar) |
protected abstract TFormulaInfo |
makeVariableImpl(String pVar) |
BooleanFormula |
not(BooleanFormula pBits)
Creates a formula representing a negation of the argument.
|
protected abstract TFormulaInfo |
not(TFormulaInfo pParam1) |
BooleanFormula |
or(BooleanFormula pBits1,
BooleanFormula pBits2)
Creates a formula representing an OR of the two arguments.
|
BooleanFormula |
or(Collection<BooleanFormula> pBits) |
protected abstract TFormulaInfo |
or(TFormulaInfo pParam1,
TFormulaInfo pParam2) |
protected TFormulaInfo |
orImpl(Collection<TFormulaInfo> pParams) |
protected TType |
toSolverType(FormulaType<?> formulaType) |
<R> R |
visit(BooleanFormulaVisitor<R> visitor,
BooleanFormula pFormula)
Visit the formula with the given visitor.
|
void |
visitRecursively(BooleanFormulaVisitor<TraversalProcess> pFormulaVisitor,
BooleanFormula pF)
Visit the formula recursively with a given
BooleanFormulaVisitor. |
BooleanFormula |
xor(BooleanFormula pBits1,
BooleanFormula pBits2)
Creates a formula representing XOR of the two arguments.
|
protected abstract TFormulaInfo |
xor(TFormulaInfo pParam1,
TFormulaInfo pParam2) |
protected final FormulaCreator<TFormulaInfo,TType,TEnv> formulaCreator
protected AbstractBooleanFormulaManager(FormulaCreator<TFormulaInfo,TType,TEnv> pCreator)
public BooleanFormula makeVariable(String pVar)
makeVariable in interface BooleanFormulaManagerprotected abstract TFormulaInfo makeVariableImpl(String pVar)
public BooleanFormula makeBoolean(boolean value)
BooleanFormulaManagerBooleanFormula representing the given value.makeBoolean in interface BooleanFormulaManagervalue - the boolean value the returned Formula should representprotected abstract TFormulaInfo makeBooleanImpl(boolean value)
public BooleanFormula not(BooleanFormula pBits)
BooleanFormulaManagernot in interface BooleanFormulaManagerpBits - a Formula!bitsprotected abstract TFormulaInfo not(TFormulaInfo pParam1)
public BooleanFormula and(BooleanFormula pBits1, BooleanFormula pBits2)
BooleanFormulaManagerand in interface BooleanFormulaManagerpBits1 - a FormulapBits2 - a Formulabits1 & bits2protected abstract TFormulaInfo and(TFormulaInfo pParam1, TFormulaInfo pParam2)
public BooleanFormula and(Collection<BooleanFormula> pBits)
and in interface BooleanFormulaManagerprotected TFormulaInfo andImpl(Collection<TFormulaInfo> pParams)
public BooleanFormula or(BooleanFormula pBits1, BooleanFormula pBits2)
BooleanFormulaManageror in interface BooleanFormulaManagerpBits1 - a FormulapBits2 - a Formulabits1 | bits2protected abstract TFormulaInfo or(TFormulaInfo pParam1, TFormulaInfo pParam2)
public BooleanFormula xor(BooleanFormula pBits1, BooleanFormula pBits2)
BooleanFormulaManagerxor in interface BooleanFormulaManagerpublic BooleanFormula or(Collection<BooleanFormula> pBits)
or in interface BooleanFormulaManagerprotected TFormulaInfo orImpl(Collection<TFormulaInfo> pParams)
protected abstract TFormulaInfo xor(TFormulaInfo pParam1, TFormulaInfo pParam2)
public final BooleanFormula equivalence(BooleanFormula pBits1, BooleanFormula pBits2)
equivalence in interface BooleanFormulaManagerpBits1 - a FormulapBits2 - a Formulaf1 <-> f2protected abstract TFormulaInfo equivalence(TFormulaInfo bits1, TFormulaInfo bits2)
public final BooleanFormula implication(BooleanFormula pBits1, BooleanFormula pBits2)
implication in interface BooleanFormulaManagerformula1 => formula2.protected TFormulaInfo implication(TFormulaInfo bits1, TFormulaInfo bits2)
public final boolean isTrue(BooleanFormula pBits)
BooleanFormulaManagerisTrue in interface BooleanFormulaManagerprotected abstract boolean isTrue(TFormulaInfo bits)
public final boolean isFalse(BooleanFormula pBits)
BooleanFormulaManagerisFalse in interface BooleanFormulaManagerprotected abstract boolean isFalse(TFormulaInfo bits)
public final <T extends Formula> T ifThenElse(BooleanFormula pBits, T f1, T f2)
ifThenElse in interface BooleanFormulaManagerpBits - a Formulaf1 - a Formulaf2 - a Formulaprotected abstract TFormulaInfo ifThenElse(TFormulaInfo cond, TFormulaInfo f1, TFormulaInfo f2)
public <R> R visit(BooleanFormulaVisitor<R> visitor, BooleanFormula pFormula)
BooleanFormulaManagervisit in interface BooleanFormulaManagerpublic void visitRecursively(BooleanFormulaVisitor<TraversalProcess> pFormulaVisitor, BooleanFormula pF)
BooleanFormulaManagerBooleanFormulaVisitor.
This method guarantees that the traversal is done iteratively, without using Java recursion, and thus is not prone to StackOverflowErrors.
Furthermore, this method also guarantees that every equal part of the formula is visited only once. Thus it can be used to traverse DAG-like formulas efficiently.
visitRecursively in interface BooleanFormulaManagerprotected final FormulaCreator<TFormulaInfo,TType,TEnv> getFormulaCreator()
protected final TType toSolverType(FormulaType<?> formulaType)