public abstract class MergeWithLatticeAbstraction extends MergeProcedure implements ParametricMergeProcedure
MergeProcedure.ValuesMergeResult
Constructor and Description |
---|
MergeWithLatticeAbstraction() |
Modifier and Type | Method and Description |
---|---|
boolean |
complete()
Similar to
AbstractBuiltInRuleApp.complete() . |
protected abstract AbstractDomainLattice |
getAbstractDomainForSort(Sort s,
Services services)
Returns the abstract domain lattice for the given sort or null if there
has no lattice been specified for that sort.
|
abstract java.util.LinkedHashMap<ProgramVariable,AbstractDomainElement> |
getUserChoices() |
MergeProcedure.ValuesMergeResult |
mergeValuesInStates(Term v,
SymbolicExecutionState state1,
Term valueInState1,
SymbolicExecutionState state2,
Term valueInState2,
Term distinguishingFormula,
Services services)
Merges two values valueInState1 and valueInState2 of corresponding SE
states state1 and state2 to a new value of a merge state.
|
boolean |
requiresDistinguishablePathConditions() |
getMergeProcedures, getProcedureByName
protected abstract AbstractDomainLattice getAbstractDomainForSort(Sort s, Services services)
s
- The sort to return the matching lattice for.services
- The services object.public abstract java.util.LinkedHashMap<ProgramVariable,AbstractDomainElement> getUserChoices()
public boolean complete()
MergeProcedure
AbstractBuiltInRuleApp.complete()
. Method was
introduced for predicate abstraction (which is not complete if the
abstraction predicates are not set).complete
in class MergeProcedure
public MergeProcedure.ValuesMergeResult mergeValuesInStates(Term v, SymbolicExecutionState state1, Term valueInState1, SymbolicExecutionState state2, Term valueInState2, Term distinguishingFormula, Services services)
MergeProcedure
mergeValuesInStates
in class MergeProcedure
v
- The variable for which the values should be mergedstate1
- First SE state.valueInState1
- Value in state1.state2
- Second SE state.valueInState2
- Value in state2.distinguishingFormula
- The user-specified distinguishing formula. May be null (for
automatic generation).services
- The services object.public boolean requiresDistinguishablePathConditions()
requiresDistinguishablePathConditions
in class MergeProcedure