Class BasicProverWithAssumptionsWrapper<T,P extends BasicProverEnvironment<T>>
- java.lang.Object
-
- org.sosy_lab.java_smt.basicimpl.withAssumptionsWrapper.BasicProverWithAssumptionsWrapper<T,P>
-
- All Implemented Interfaces:
AutoCloseable,BasicProverEnvironment<T>
- Direct Known Subclasses:
InterpolatingProverWithAssumptionsWrapper,ProverWithAssumptionsWrapper
public class BasicProverWithAssumptionsWrapper<T,P extends BasicProverEnvironment<T>> extends Object implements BasicProverEnvironment<T>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.sosy_lab.java_smt.api.BasicProverEnvironment
BasicProverEnvironment.AllSatCallback<R>
-
-
Field Summary
Fields Modifier and Type Field Description protected Pdelegateprotected List<BooleanFormula>solverAssumptionsAsFormula-
Fields inherited from interface org.sosy_lab.java_smt.api.BasicProverEnvironment
NO_MODEL_HELP
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TaddConstraint(BooleanFormula constraint)Add constraint to the context.<R> RallSat(BasicProverEnvironment.AllSatCallback<R> pCallback, List<BooleanFormula> pImportant)Get all satisfying assignments of the current environment with regard to a subset of terms, and create a region representing all those models.protected voidclearAssumptions()voidclose()Closes the prover environment.ModelgetModel()Get a satisfying assignment.ImmutableList<Model.ValueAssignment>getModelAssignments()Get a list of satisfying assignments.List<BooleanFormula>getUnsatCore()Get an unsat core.booleanisUnsat()Check whether the conjunction of all formulas on the stack is unsatisfiable.booleanisUnsatWithAssumptions(Collection<BooleanFormula> assumptions)Check whether the conjunction of all formulas on the stack together with the list of assumptions is satisfiable.voidpop()Remove one formula from the environment stack.voidpush()Create backtracking point.protected voidregisterPushedFormula(T pPushResult)overridden in sub-class.Optional<List<BooleanFormula>>unsatCoreOverAssumptions(Collection<BooleanFormula> pAssumptions)Returns an UNSAT core (if it exists, otherwiseOptional.empty()), over the chosen assumptions.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.sosy_lab.java_smt.api.BasicProverEnvironment
push
-
-
-
-
Field Detail
-
delegate
protected final P extends BasicProverEnvironment<T> delegate
-
solverAssumptionsAsFormula
protected final List<BooleanFormula> solverAssumptionsAsFormula
-
-
Method Detail
-
clearAssumptions
protected void clearAssumptions()
-
pop
public void pop()
Description copied from interface:BasicProverEnvironmentRemove one formula from the environment stack.- Specified by:
popin interfaceBasicProverEnvironment<T>
-
addConstraint
public T addConstraint(BooleanFormula constraint) throws InterruptedException
Description copied from interface:BasicProverEnvironmentAdd constraint to the context.- Specified by:
addConstraintin interfaceBasicProverEnvironment<T>- Throws:
InterruptedException
-
push
public void push()
Description copied from interface:BasicProverEnvironmentCreate backtracking point.- Specified by:
pushin interfaceBasicProverEnvironment<T>
-
isUnsat
public boolean isUnsat() throws SolverException, InterruptedExceptionDescription copied from interface:BasicProverEnvironmentCheck whether the conjunction of all formulas on the stack is unsatisfiable.- Specified by:
isUnsatin interfaceBasicProverEnvironment<T>- Throws:
SolverExceptionInterruptedException
-
isUnsatWithAssumptions
public boolean isUnsatWithAssumptions(Collection<BooleanFormula> assumptions) throws SolverException, InterruptedException
Description copied from interface:BasicProverEnvironmentCheck whether the conjunction of all formulas on the stack together with the list of assumptions is satisfiable.- Specified by:
isUnsatWithAssumptionsin interfaceBasicProverEnvironment<T>- Parameters:
assumptions- A list of literals.- Throws:
SolverExceptionInterruptedException
-
registerPushedFormula
protected void registerPushedFormula(T pPushResult)
overridden in sub-class.
-
getModel
public Model getModel() throws SolverException
Description copied from interface:BasicProverEnvironmentGet a satisfying assignment. This should be called only immediately after anBasicProverEnvironment.isUnsat()call that returnedfalse. A model might contain additional symbols with their evaluation, if a solver uses its own temporary symbols. There should be at least a value-assignment for each free symbol.- Specified by:
getModelin interfaceBasicProverEnvironment<T>- Throws:
SolverException
-
getModelAssignments
public ImmutableList<Model.ValueAssignment> getModelAssignments() throws SolverException
Description copied from interface:BasicProverEnvironmentGet a list of satisfying assignments. This is equivalent toImmutableList.copyOf(getModel()), but removes the need for callingModel.close().Note that if you need to iterate multiple times over the model it may be more efficient to use this method instead of
BasicProverEnvironment.getModel()(depending on the solver).- Specified by:
getModelAssignmentsin interfaceBasicProverEnvironment<T>- Throws:
SolverException
-
getUnsatCore
public List<BooleanFormula> getUnsatCore()
Description copied from interface:BasicProverEnvironmentGet an unsat core. This should be called only immediately after anBasicProverEnvironment.isUnsat()call that returnedfalse.- Specified by:
getUnsatCorein interfaceBasicProverEnvironment<T>
-
unsatCoreOverAssumptions
public Optional<List<BooleanFormula>> unsatCoreOverAssumptions(Collection<BooleanFormula> pAssumptions) throws SolverException, InterruptedException
Description copied from interface:BasicProverEnvironmentReturns an UNSAT core (if it exists, otherwiseOptional.empty()), over the chosen assumptions. Does NOT require theSolverContext.ProverOptions.GENERATE_UNSAT_COREoption to work.- Specified by:
unsatCoreOverAssumptionsin interfaceBasicProverEnvironment<T>- Parameters:
pAssumptions- Selected assumptions- Returns:
- Empty optional if the constraints with assumptions are satisfiable, subset of assumptions which is unsatisfiable with the original constraints otherwise.
- Throws:
SolverExceptionInterruptedException
-
close
public void close()
Description copied from interface:BasicProverEnvironmentCloses the prover environment. The object should be discarded, and should not be used after closing.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceBasicProverEnvironment<T>
-
allSat
public <R> R allSat(BasicProverEnvironment.AllSatCallback<R> pCallback, List<BooleanFormula> pImportant) throws InterruptedException, SolverException
Description copied from interface:BasicProverEnvironmentGet all satisfying assignments of the current environment with regard to a subset of terms, and create a region representing all those models.- Specified by:
allSatin interfaceBasicProverEnvironment<T>pImportant- A set of (positive) variables appearing in the asserted queries. Only these variables will appear in the region.- Returns:
- A region representing all satisfying models of the formula.
- Throws:
InterruptedExceptionSolverException
-
-