Class DebuggingModel

    • Constructor Detail

      • DebuggingModel

        public DebuggingModel​(Model pDelegate,
                              org.sosy_lab.java_smt.delegate.debugging.DebuggingAssertions pDebugging)
    • Method Detail

      • eval

        public <T extends Formula> @Nullable T eval​(T formula)
        Description copied from interface: Evaluator
        Evaluate a given formula substituting the values from the model and return it as formula.

        If a value is not relevant to the satisfiability result, the solver can choose either to insert an arbitrary value (e.g., the value 0 for the matching type) or just return null.

        The formula does not need to be a variable, we also allow complex expression. The solver will replace all symbols from the formula with their model values and then simplify the formula into a simple formula, e.g., consisting only of a numeral expression.

        Specified by:
        eval in interface Evaluator
        Parameters:
        formula - Input formula to be evaluated.
        Returns:
        evaluation of the given formula or null if the solver does not provide a better evaluation.
      • evaluate

        public @Nullable Object evaluate​(Formula formula)
        Description copied from interface: Evaluator
        Evaluate a given formula substituting the values from the model.

        If a value is not relevant to the satisfiability result, the model can choose either an arbitrary value (e.g., the value 0 for the matching type) or just return null.

        The formula does not need to be a variable, we also allow complex expression.

        Specified by:
        evaluate in interface Evaluator
        Parameters:
        formula - Input formula
        Returns:
        Either of: - Number (Rational/Double/BigInteger/Long/Integer) - Boolean
      • evaluate

        public @Nullable Boolean evaluate​(BooleanFormula formula)
        Description copied from interface: Evaluator
        Type-safe evaluation for boolean formulas.

        The formula does not need to be a variable, we also allow complex expression.

        Specified by:
        evaluate in interface Evaluator
      • evaluate

        public @Nullable BigInteger evaluate​(BitvectorFormula formula)
        Description copied from interface: Evaluator
        Type-safe evaluation for bitvector formulas.

        The formula does not need to be a variable, we also allow complex expression.

        Specified by:
        evaluate in interface Evaluator
      • evaluate

        public @Nullable String evaluate​(StringFormula formula)
        Description copied from interface: Evaluator
        Type-safe evaluation for string formulas.

        The formula does not need to be a variable, we also allow complex expression.

        Specified by:
        evaluate in interface Evaluator
      • evaluate

        public @Nullable String evaluate​(EnumerationFormula formula)
        Description copied from interface: Evaluator
        Type-safe evaluation for enumeration formulas.

        The formula does not need to be a variable, we also allow complex expression.

        Specified by:
        evaluate in interface Evaluator