Package org.sosy_lab.java_smt.api
Interface QuantifiedFormulaManager
- All Known Implementing Classes:
AbstractQuantifiedFormulaManager,DebuggingQuantifiedFormulaManager
public interface QuantifiedFormulaManager
This interface contains methods for working with any theory with quantifiers.
ATTENTION: Not every theory has a quantifier elimination property!
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionEliminate the quantifiers for a given formula.default BooleanFormulaexists(List<? extends Formula> pVariables, BooleanFormula pBody) default BooleanFormulaexists(Formula quantifiedArg, BooleanFormula pBody) Syntax sugar, seeexists(List, BooleanFormula).default BooleanFormulaforall(List<? extends Formula> pVariables, BooleanFormula pBody) default BooleanFormulaforall(Formula quantifiedArg, BooleanFormula pBody) Syntax sugar, seeforall(List, BooleanFormula).mkQuantifier(QuantifiedFormulaManager.Quantifier q, List<? extends Formula> pVariables, BooleanFormula pBody)
-
Method Details
-
exists
- Parameters:
pVariables- The variables that will get bound (variables) by the quantification.pBody- TheBooleanFormula} within that the binding will be performed.- Returns:
- An existentially quantified formula.
- Throws:
IllegalArgumentException- If the listpVariablesis empty.
-
forall
- Parameters:
pVariables- The variables that will get bound (variables) by the quantification.pBody- TheBooleanFormula} within that the binding will be performed.- Returns:
- A universally quantified formula.
- Throws:
IllegalArgumentException- If the listpVariablesis empty.
-
forall
Syntax sugar, seeforall(List, BooleanFormula). -
exists
Syntax sugar, seeexists(List, BooleanFormula). -
mkQuantifier
BooleanFormula mkQuantifier(QuantifiedFormulaManager.Quantifier q, List<? extends Formula> pVariables, BooleanFormula pBody) - Parameters:
q- Quantifier typepVariables- The variables that will get bound (variables) by the quantification.pBody- TheBooleanFormula} within that the binding will be performed.- Returns:
- A quantified formula
- Throws:
IllegalArgumentException- If the listpVariablesis empty.
-
eliminateQuantifiers
Eliminate the quantifiers for a given formula. If this is not possible, it will return the input formula. Note that CVC4 only supports this for LIA and LRA.- Parameters:
pF- Formula with quantifiers.- Returns:
- New formula without quantifiers.
- Throws:
InterruptedExceptionSolverException
-