Class ValueCartesianProduct<T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>>
- java.lang.Object
-
- it.unive.lisa.analysis.combination.CartesianProduct<ValueCartesianProduct<T1,T2>,T1,T2,ValueExpression,Identifier>
-
- it.unive.lisa.analysis.combination.ValueCartesianProduct<T1,T2>
-
- Type Parameters:
T1- the concrete instance of the left-hand side value abstract domain of the Cartesian productT2- the concrete instance of the right-hand side value abstract domain of the Cartesian product
- All Implemented Interfaces:
Lattice<ValueCartesianProduct<T1,T2>>,SemanticDomain<ValueCartesianProduct<T1,T2>,ValueExpression,Identifier>,ValueDomain<ValueCartesianProduct<T1,T2>>
public class ValueCartesianProduct<T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>> extends CartesianProduct<ValueCartesianProduct<T1,T2>,T1,T2,ValueExpression,Identifier> implements ValueDomain<ValueCartesianProduct<T1,T2>>
A Cartesian product between two non-communicatingValueDomains (i.e., no exchange of information between the abstract domains) assigningIdentifiers and handlingValueExpressions.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface it.unive.lisa.analysis.SemanticDomain
SemanticDomain.Satisfiability
-
-
Field Summary
-
Fields inherited from class it.unive.lisa.analysis.combination.CartesianProduct
left, right
-
Fields inherited from interface it.unive.lisa.analysis.Lattice
BOTTOM_REPR, BOTTOM_STRING, TOP_REPR, TOP_STRING
-
-
Constructor Summary
Constructors Constructor Description ValueCartesianProduct(T1 left, T2 right)Builds the value Cartesian product.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisBottom()Yieldstrueif and only if this object represents the bottom of the lattice.protected ValueCartesianProduct<T1,T2>mk(T1 left, T2 right)Builds a new instance of cartesian product.-
Methods inherited from class it.unive.lisa.analysis.combination.CartesianProduct
assign, assume, bottom, equals, forgetIdentifier, hashCode, isTop, lessOrEqual, lub, popScope, pushScope, representation, satisfies, smallStepSemantics, top, toString, widening
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.analysis.Lattice
bottom, isTop, lessOrEqual, lub, top, widening
-
Methods inherited from interface it.unive.lisa.analysis.SemanticDomain
assign, assume, forgetIdentifier, forgetIdentifiers, popScope, pushScope, representation, satisfies, smallStepSemantics
-
Methods inherited from interface it.unive.lisa.analysis.value.ValueDomain
applySubstitution
-
-
-
-
Method Detail
-
mk
protected ValueCartesianProduct<T1,T2> mk(T1 left, T2 right)
Description copied from class:CartesianProductBuilds a new instance of cartesian product.- Specified by:
mkin classCartesianProduct<ValueCartesianProduct<T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>>,T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>,ValueExpression,Identifier>- Parameters:
left- the first domainright- the second domain- Returns:
- the new instance of product
-
isBottom
public boolean isBottom()
Description copied from interface:LatticeYieldstrueif and only if this object represents the bottom of the lattice. The default implementation of this method uses reference equality betweenthisand the value returned byLattice.bottom(), thus assuming that the bottom element is a singleton. If this is not the case, override this method accordingly to provide a coherent test.- Specified by:
isBottomin interfaceLattice<T1 extends ValueDomain<T1>>- Overrides:
isBottomin classCartesianProduct<ValueCartesianProduct<T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>>,T1 extends ValueDomain<T1>,T2 extends ValueDomain<T2>,ValueExpression,Identifier>- Returns:
trueif this is the bottom of the lattice
-
-