Class DebuggingSLFormulaManager
- java.lang.Object
-
- org.sosy_lab.java_smt.delegate.debugging.DebuggingSLFormulaManager
-
- All Implemented Interfaces:
SLFormulaManager
public class DebuggingSLFormulaManager extends Object implements SLFormulaManager
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <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.BooleanFormula
makeMagicWand(BooleanFormula f1, BooleanFormula f2)
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.BooleanFormula
makeStar(BooleanFormula f1, BooleanFormula f2)
Creates a formula representing the "separating conjunction" (*) of two Boolean formulas.
-
-
-
Method Detail
-
makeStar
public BooleanFormula makeStar(BooleanFormula f1, BooleanFormula f2)
Description copied from interface:SLFormulaManager
Creates 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:
makeStar
in interfaceSLFormulaManager
- Returns:
- a Boolean formula representing the separating conjunction of
f1
andf2
.
-
makePointsTo
public <AF extends Formula,VF extends Formula> BooleanFormula makePointsTo(AF ptr, VF to)
Description copied from interface:SLFormulaManager
Creates 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:
makePointsTo
in 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
public BooleanFormula makeMagicWand(BooleanFormula f1, BooleanFormula f2)
Description copied from interface:SLFormulaManager
Creates 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:
makeMagicWand
in interfaceSLFormulaManager
- Returns:
- a Boolean formula representing the "magic wand" of
f1
andf2
.
-
makeEmptyHeap
public <AF extends Formula,VF extends Formula,AT extends FormulaType<AF>,VT extends FormulaType<VF>> BooleanFormula makeEmptyHeap(AT pAdressType, VT pValueType)
Description copied from interface:SLFormulaManager
Creates 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:
makeEmptyHeap
in 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
public <AF extends Formula,AT extends FormulaType<AF>> AF makeNilElement(AT pAdressType)
Description copied from interface:SLFormulaManager
Creates 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:
makeNilElement
in 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.
-
-