Interface FormulaVisitor<R>

    • Method Detail

      • visitFreeVariable

        R visitFreeVariable​(Formula f,
                            String name)
        Visit a free variable (such as "x", "y" or "z"), not bound by a quantifier. The variable can have any sort (both boolean and non-boolean).
        Parameters:
        f - Formula representing the variable.
        name - Variable name.
      • visitBoundVariable

        R visitBoundVariable​(Formula f,
                             int deBruijnIdx)
        Visit a variable bound by a quantifier. The variable can have any sort (both boolean and non-boolean).
        Parameters:
        f - Formula representing the variable.
        deBruijnIdx - de-Bruijn index of the bound variable, which can be used to find the matching quantifier.
      • visitConstant

        R visitConstant​(Formula f,
                        Object value)
        Visit a constant, such as "true"/"false", a numeric constant like "1" or "1.0", a String constant like 2hello world" or enumeration constant like "Blue".
        Parameters:
        f - Formula representing the constant.
        value - The value of the constant. It is either of type Boolean, of a subtype of Number (mostly a BigInteger, a BigDecimal, or a Rational), or String.
        Returns:
        An arbitrary return value that is passed to the caller.
      • visitQuantifier

        R visitQuantifier​(BooleanFormula f,
                          QuantifiedFormulaManager.Quantifier quantifier,
                          List<Formula> boundVariables,
                          BooleanFormula body)
        Visit a quantified node.
        Parameters:
        f - Quantifier formula.
        quantifier - Quantifier type: either FORALL or EXISTS.
        boundVariables - Variables bound by the quantifier. NOTE: not all solvers hold metadata about bound variables. In case this is not available, this method will be called with an empty list, yet #mkQuantifier will work fine with an empty list as well.
        body - Body of the quantifier.