Class ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<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 the NonRedundantPowerset class fixing the type of elements in the set to be ValueDomain, the SymbolicExpression processable to be ValueExpression and the manageable Identifier to be all the Identifier.
    • 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 set
        isTop - whether or not the element is the top element
        valueDomain - 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 of NonRedundantPowerset given a set, whether or not the element is the top element and an instance of the the underlying lattice.
        Specified by:
        mk in class NonRedundantPowerset<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 instance
        isTop - wheter or not the element is top
        valueDomain - 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 interface it.unive.lisa.analysis.Lattice<T extends it.unive.lisa.analysis.value.ValueDomain<T>>
        Overrides:
        isBottom in class NonRedundantPowerset<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 interface it.unive.lisa.analysis.Lattice<T extends it.unive.lisa.analysis.value.ValueDomain<T>>
        Overrides:
        isTop in class NonRedundantPowerset<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)