Class ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>>
- java.lang.Object
-
- it.unive.lisa.analysis.lattices.SetLattice<C,T>
-
- it.unive.lisa.analysis.nonRedundantSet.NonRedundantPowerset<ValueNonRedundantSet<T>,T,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
-
- it.unive.lisa.analysis.nonRedundantSet.ValueNonRedundantSet<T>
-
- Type Parameters:
T
- the concrete type of the elements in the sets
- All Implemented Interfaces:
it.unive.lisa.analysis.BaseLattice<ValueNonRedundantSet<T>>
,it.unive.lisa.analysis.Lattice<ValueNonRedundantSet<T>>
,it.unive.lisa.analysis.ScopedObject<ValueNonRedundantSet<T>>
,it.unive.lisa.analysis.SemanticDomain<ValueNonRedundantSet<T>,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
,it.unive.lisa.util.representation.StructuredObject
,java.lang.Iterable<T>
public class ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>> extends NonRedundantPowerset<ValueNonRedundantSet<T>,T,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
This class expands theNonRedundantPowerset
class fixing the type of elements in the set to beValueDomain
, theSymbolicExpression
processable to beValueExpression
and the manageableIdentifier
to be all theIdentifier
.
-
-
Field Summary
-
Fields inherited from class it.unive.lisa.analysis.nonRedundantSet.NonRedundantPowerset
valueDomain
-
-
Constructor Summary
Constructors Constructor Description ValueNonRedundantSet(java.util.SortedSet<T> elements, boolean isTop, T valueDomain)
Builds the value non redundant set.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isBottom()
boolean
isTop()
boolean
knowsIdentifier(it.unive.lisa.symbolic.value.Identifier id)
ValueNonRedundantSet<T>
mk(java.util.SortedSet<T> set, boolean isTop, T valueDomain)
Utility used for creating a concrete instance ofNonRedundantPowerset
given a set, whether or not the element is the top element and an instance of the the underlying lattice.-
Methods inherited from class it.unive.lisa.analysis.nonRedundantSet.NonRedundantPowerset
assign, assume, bottom, EgliMilnerConnector, equals, extrapolationHeuristic, forgetIdentifier, forgetIdentifiersIf, glbAux, hashCode, lessOrEqualAux, lessOrEqualEgliMilner, lubAux, mk, popScope, pushScope, removeRedundancy, representation, satisfies, smallStepSemantics, top, wideningAux
-
Methods inherited from class it.unive.lisa.analysis.lattices.SetLattice
contains, elements, isEmpty, iterator, size, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Constructor Detail
-
ValueNonRedundantSet
public ValueNonRedundantSet(java.util.SortedSet<T> elements, boolean isTop, T valueDomain)
Builds the value non redundant set.- Parameters:
elements
- the set of elements of the setisTop
- whether or not the element is the top elementvalueDomain
- an element representing the types of elements in the set
-
-
Method Detail
-
mk
public ValueNonRedundantSet<T> mk(java.util.SortedSet<T> set, boolean isTop, T valueDomain)
Description copied from class:NonRedundantPowerset
Utility used for creating a concrete instance ofNonRedundantPowerset
given a set, whether or not the element is the top element and an instance of the the underlying lattice.- Specified by:
mk
in classNonRedundantPowerset<ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>>,T extends it.unive.lisa.analysis.value.ValueDomain<T>,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
- Parameters:
set
- the set containing the elements that must be included in the lattice instanceisTop
- wheter or not the element is topvalueDomain
- an instance of the underlying lattice- Returns:
- a new concrete instance of
NonRedundantPowerset
with the given configuration passed
-
isBottom
public boolean isBottom()
- Specified by:
isBottom
in interfaceit.unive.lisa.analysis.Lattice<T extends it.unive.lisa.analysis.value.ValueDomain<T>>
- Overrides:
isBottom
in classNonRedundantPowerset<ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>>,T extends it.unive.lisa.analysis.value.ValueDomain<T>,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
-
isTop
public boolean isTop()
- Specified by:
isTop
in interfaceit.unive.lisa.analysis.Lattice<T extends it.unive.lisa.analysis.value.ValueDomain<T>>
- Overrides:
isTop
in classNonRedundantPowerset<ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>>,T extends it.unive.lisa.analysis.value.ValueDomain<T>,it.unive.lisa.symbolic.value.ValueExpression,it.unive.lisa.symbolic.value.Identifier>
-
knowsIdentifier
public boolean knowsIdentifier(it.unive.lisa.symbolic.value.Identifier id)
-
-