AbstrDomElem - public abstract class AbstractDomainLattice extends java.lang.Object implements PartialComparator<AbstractDomainElement>, java.lang.Iterable<AbstractDomainElement>
PartialComparator.PartialComparisonResult| Modifier and Type | Field and Description |
|---|---|
private static int |
AXIOM_PROVE_TIMEOUT_MS
Time in milliseconds after which a proof attempt of a defining axiom
times out.
|
| Constructor and Description |
|---|
AbstractDomainLattice() |
| Modifier and Type | Method and Description |
|---|---|
AbstractDomainElement |
abstractFrom(SymbolicExecutionState state,
Term term,
Services services)
Abstracts from a given element of the concrete domain by returning a
suitable abstract element.
|
PartialComparator.PartialComparisonResult |
compare(AbstractDomainElement a,
AbstractDomainElement b)
Compares its two arguments for order.
|
AbstractDomainElement |
fromString(java.lang.String s,
Services services)
Constructs an Abstract Domain Element from the given String
representation.
|
static Term |
getSideConditionForAxiom(SymbolicExecutionState state,
Term term,
AbstractDomainElement elem,
Services services)
Returns a side condition which has to hold if elem is a correct
abstraction for term.
|
abstract java.util.Iterator<AbstractDomainElement> |
iterator()
Iterates through the abstract domain elements of this abstract domain
starting by the smallest element; if an element b is returned by the
iterator after an element a, then either compare(a,b) == LTE, or
compare(a,b) == UNDEF must hold (i.e., b may not be smaller than a).
|
abstract AbstractDomainElement |
join(AbstractDomainElement a,
AbstractDomainElement b)
A lattice join operation; finds an abstract element that is the least
upper bound of the set consisting of the elements a and b.
|
private static final int AXIOM_PROVE_TIMEOUT_MS
public AbstractDomainElement abstractFrom(SymbolicExecutionState state, Term term, Services services)
state - The state in which the abstraction should hold.term - Element to abstract from.services - The services object.public static Term getSideConditionForAxiom(SymbolicExecutionState state, Term term, AbstractDomainElement elem, Services services)
state - The state in which the abstraction should hold.term - Element to abstract from.elem - Abstract domain element to check.services - The services object.public abstract AbstractDomainElement join(AbstractDomainElement a, AbstractDomainElement b)
a - First element to find the least upper bound for.b - Second element to find the least upper bound for.public PartialComparator.PartialComparisonResult compare(AbstractDomainElement a, AbstractDomainElement b)
PartialComparatorcompare in interface PartialComparator<AbstractDomainElement>a - the first object to be compared.b - the second object to be compared.public abstract java.util.Iterator<AbstractDomainElement> iterator()
iterator in interface java.lang.Iterable<AbstractDomainElement>public AbstractDomainElement fromString(java.lang.String s, Services services)
AbstractDomainElement e, that
fromString(e.toParseableString(),
services).equals(e).s - String to parse.services - The services object.AbstractDomainElement.java.lang.RuntimeException - if s cannot be parsed.