Interface NonRelationalElement<T extends NonRelationalElement<T,​E,​F>,​E extends SymbolicExpression,​F extends FunctionalLattice<F,​Identifier,​T>>

    • Method Detail

      • assume

        F assume​(F environment,
                 E expression,
                 ProgramPoint pp)
          throws SemanticException
        Yields the environment environment on which the expression expression is assumed to hold by this domain.
        Parameters:
        environment - the environment
        expression - the expression to be assumed
        pp - the program point where expression occurs.
        Returns:
        the environment environment where expression is assumed to hold
        Throws:
        SemanticException - if an error occurs during the computation
      • glb

        T glb​(T other)
        throws SemanticException
        Performs the greatest lower bound operation between this domain element and other.
        Parameters:
        other - the other domain element
        Returns:
        the greatest lowe bound between this and other
        Throws:
        SemanticException - if an error occurs during the computation
      • variable

        default T variable​(Identifier id,
                           ProgramPoint pp)
                    throws SemanticException
        Yields a fixed abstraction of the given variable. The abstraction does not depend on the abstract values that get assigned to the variable, but is instead fixed among all possible execution paths. If this method does not return the bottom element (as the default implementation does), then Environment.assign(Identifier, SymbolicExpression, ProgramPoint) will store that abstract element instead of the one computed starting from the expression.
        Parameters:
        id - The identifier representing the variable being assigned
        pp - the program point that where this operation is being evaluated
        Returns:
        the fixed abstraction of the variable
        Throws:
        SemanticException - if an error occurs during the computation