public abstract class FormulaTransformationVisitor extends Object implements FormulaVisitor<Formula>
| Modifier | Constructor and Description |
|---|---|
protected |
FormulaTransformationVisitor(FormulaManager fmgr) |
| Modifier and Type | Method and Description |
|---|---|
Formula |
visitBoundVariable(Formula f,
int deBruijnIdx)
Bound variables can not be changed.
|
Formula |
visitConstant(Formula f,
Object value)
Visit a constant, such as "true"/"false" or a numeric constant like "1" or "1.0".
|
Formula |
visitFreeVariable(Formula f,
String name)
Visit a free variable (such as "x", "y" or "z"), not bound by a quantifier.
|
Formula |
visitFunction(Formula f,
List<Formula> newArgs,
FunctionDeclaration functionDeclaration,
Function<List<Formula>,Formula> newApplicationConstructor)
Visit an arbitrary, potentially uninterpreted function.
|
BooleanFormula |
visitQuantifier(BooleanFormula f,
QuantifiedFormulaManager.Quantifier quantifier,
List<Formula> boundVariables,
BooleanFormula transformedBody)
Visit a quantified node.
|
protected FormulaTransformationVisitor(FormulaManager fmgr)
public Formula visitFreeVariable(Formula f, String name)
FormulaVisitorvisitFreeVariable in interface FormulaVisitor<Formula>f - Formula representing the variable.name - Variable name.public final Formula visitBoundVariable(Formula f, int deBruijnIdx)
visitBoundVariable in interface FormulaVisitor<Formula>f - Formula representing the variable.deBruijnIdx - de-Bruijn index of the bound variable, which can be used
to find the matching quantifier.public Formula visitConstant(Formula f, Object value)
FormulaVisitorvisitConstant in interface FormulaVisitor<Formula>f - Formula representing the constant.value - The value of the constant. It is either of type Boolean or of a subtype
of Number, in most cases a BigInteger, BigDecimal,
or Rational.public Formula visitFunction(Formula f, List<Formula> newArgs, FunctionDeclaration functionDeclaration, Function<List<Formula>,Formula> newApplicationConstructor)
FormulaVisitorvisitFunction in interface FormulaVisitor<Formula>f - Input function.newArgs - New arguments after the transformationfunctionDeclaration - Function declarationnewApplicationConstructor - Construct a new function of the same type,public BooleanFormula visitQuantifier(BooleanFormula f, QuantifiedFormulaManager.Quantifier quantifier, List<Formula> boundVariables, BooleanFormula transformedBody)
FormulaVisitorvisitQuantifier in interface FormulaVisitor<Formula>f - Quantifier formula.quantifier - Quantifier type: either FORALL or EXISTS.boundVariables - Variables bound by the quantifier.
NOTE: not all solvers hold metadata about
bound variables.
In case this is not available, this method will be
called with an empty list, yet mkQuantifier
will work fine with an empty list as well.transformedBody - Quantifier body already transformed by the
visitor.