Package org.sosy_lab.java_smt.basicimpl
Class AbstractSLFormulaManager<TFormulaInfo,TType,TEnv,TFuncDecl>
java.lang.Object
org.sosy_lab.java_smt.basicimpl.AbstractSLFormulaManager<TFormulaInfo,TType,TEnv,TFuncDecl>
- All Implemented Interfaces:
SLFormulaManager
public abstract class AbstractSLFormulaManager<TFormulaInfo,TType,TEnv,TFuncDecl>
extends Object
implements SLFormulaManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final FormulaCreator<TFormulaInfo,TType, TEnv, TFuncDecl> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionprotected final TFormulaInfoextractInfo(Formula pBits) protected final FormulaCreator<TFormulaInfo,TType, TEnv, TFuncDecl> <AF extends Formula,VF extends Formula, AT extends FormulaType<AF>, VT extends FormulaType<VF>>
BooleanFormulamakeEmptyHeap(AT pAdressType, VT pValueType) Creates a formula representing an empty heap.protected abstract TFormulaInfomakeEmptyHeap(TType e1, TType e2) Creates a formula representing the "magic wand" (-*) operator in separation logic.protected abstract TFormulaInfomakeMagicWand(TFormulaInfo e1, TFormulaInfo e2) <AF extends Formula,AT extends FormulaType<AF>>
AFmakeNilElement(AT pAdressType) Creates a formula representing the "nil" element for a given address type.protected abstract TFormulaInfomakeNilElement(TType type) makePointsTo(Formula ptr, Formula to) Creates a formula representing a "points-to" relation in the heap.protected abstract TFormulaInfomakePointsTo(TFormulaInfo ptr, TFormulaInfo to) makeStar(BooleanFormula f1, BooleanFormula f2) Creates a formula representing the "separating conjunction" (*) of two Boolean formulas.protected abstract TFormulaInfomakeStar(TFormulaInfo e1, TFormulaInfo e2) protected final TTypetoSolverType(FormulaType<?> formulaType)
-
Field Details
-
formulaCreator
-
-
Constructor Details
-
AbstractSLFormulaManager
-
-
Method Details
-
makeStar
Description copied from interface:SLFormulaManagerCreates a formula representing the "separating conjunction" (*) of two Boolean formulas. In separation logic, the separating conjunction asserts that the two formulas describe disjoint parts of the heap. It is similar to the logical AND operator, but with the additional constraint that the memory regions described by the two formulas do not overlap.- Specified by:
makeStarin interfaceSLFormulaManager- Returns:
- a Boolean formula representing the separating conjunction of
f1andf2.
-
makeStar
-
makePointsTo
Description copied from interface:SLFormulaManagerCreates a formula representing a "points-to" relation in the heap. The "points-to" relation asserts that a pointer points to a specific value in memory.- Specified by:
makePointsToin interfaceSLFormulaManager- Parameters:
ptr- the pointer formula.to- the value formula.- Returns:
- a Boolean formula representing the "points-to" relation.
-
makePointsTo
-
makeMagicWand
Description copied from interface:SLFormulaManagerCreates a formula representing the "magic wand" (-*) operator in separation logic. The "magic wand" operator asserts that if the first formula holds, then the second formula can be added to the heap without conflict. It is a form of implication (=>) that takes into account the disjointness of memory regions.- Specified by:
makeMagicWandin interfaceSLFormulaManager- Returns:
- a Boolean formula representing the "magic wand" of
f1andf2.
-
makeMagicWand
-
makeEmptyHeap
public <AF extends Formula,VF extends Formula, BooleanFormula makeEmptyHeapAT extends FormulaType<AF>, VT extends FormulaType<VF>> (AT pAdressType, VT pValueType) Description copied from interface:SLFormulaManagerCreates a formula representing an empty heap. The empty heap formula asserts that no memory is allocated for the given address and value types.- Specified by:
makeEmptyHeapin interfaceSLFormulaManager- Type Parameters:
AF- the type of the address formula.VF- the type of the value formula.AT- the type of the address formula type.VT- the type of the value formula type.- Parameters:
pAdressType- the type of the address formula.pValueType- the type of the value formula.- Returns:
- a Boolean formula representing an empty heap.
-
makeEmptyHeap
-
makeNilElement
Description copied from interface:SLFormulaManagerCreates a formula representing the "nil" element for a given address type. The "nil" element is used to represent a null pointer or an unallocated memory address.- Specified by:
makeNilElementin interfaceSLFormulaManager- Type Parameters:
AF- the type of the address formula.AT- the type of the address formula type.- Parameters:
pAdressType- the type of the address formula.- Returns:
- a formula representing the "nil" element for the given address type.
-
makeNilElement
-
getFormulaCreator
-
extractInfo
-
toSolverType
-