Class DebuggingSLFormulaManager
java.lang.Object
org.sosy_lab.java_smt.delegate.debugging.DebuggingSLFormulaManager
- All Implemented Interfaces:
SLFormulaManager
-
Method Summary
Modifier and TypeMethodDescription<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.Creates a formula representing the "magic wand" (-*) operator in separation logic.<AF extends Formula,AT extends FormulaType<AF>>
AFmakeNilElement(AT pAdressType) Creates a formula representing the "nil" element for a given address type.<AF extends Formula,VF extends Formula>
BooleanFormulamakePointsTo(AF ptr, VF to) Creates a formula representing a "points-to" relation in the heap.makeStar(BooleanFormula f1, BooleanFormula f2) Creates a formula representing the "separating conjunction" (*) of two Boolean formulas.
-
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.
-
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- Type Parameters:
AF- the type of the address formula.VF- the type of the value formula.- Parameters:
ptr- the pointer formula.to- the value formula.- Returns:
- a Boolean formula representing the "points-to" relation.
-
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.
-
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.
-
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.
-