Package

smtlib

Permalink

package smtlib

Visibility
  1. Public
  2. All

Type Members

  1. trait Interpreter extends AnyRef

    Permalink

Value Members

  1. object Interpreter

    Permalink
  2. package common

    Permalink
  3. package drivers

    Permalink

    provides drivers that adapt standard SMT-LIB to solver specific behaviour

    provides drivers that adapt standard SMT-LIB to solver specific behaviour

    In particula, some solvers only support a subset of SMT-LIB or an outdated version. The aim of the drivers are to simplify the interface for other tools. All the tools have to be concerned about is to follow the SMT-LIB standard, and the driver will take care of any peculiarity of the solver.

  4. package interpreters

    Permalink
  5. package lexer

    Permalink
  6. package parser

    Permalink
  7. package printer

    Permalink
  8. package theories

    Permalink

    Provides constructors and extractors to build theory specific trees

    Provides constructors and extractors to build theory specific trees

    Theory trees are not concrete abstract syntax trees, but simply helpers to properly construct the underlying low level {{smtlib.parser.Terms AST}}.

    This design choice is made to reflect how the SMT-LIB format is described, and also seems to work well as most operations on trees only need to be defined for the core ASTs. Many theories operations such as "+", "-", "div" are really a special case of the general {{smtlib.parser.Terms.FunctionApplication FunctionApplication}}.

    Each theory is defined in its own object named after the theory, e.g. {theories.Ints}, which contains objects with apply and unapply (usually factored out in some abstract {{theory.Operations}} traits) to build and extract correct expressions in the theory.

Ungrouped