z3.scala

Z3Theory

class Z3Theory extends AnyRef

This class is inherited to create user defined theories.

The class should be instantiated before anything is added to the Z3Context, as constructing the class automatically registers the plugin with the context. The user can choose which callbacks to activate by calling setCallbacks with the appropriate arguments at construction time. For debugging purposes, the method showCallbacks can be useful.

Attributes
abstract
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Z3Theory
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Z3Theory (context: Z3Context, name: String)

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  7. def assertAxiom (axiom: Z3AST): Unit

    Adds an axiom to the logical context.

    Adds an axiom to the logical context. The axiom should always be a tautology with respect to the theory. The axiom is guaranteed to be maintained in all (backtracking) levels beyond the one where it is asserted. Note that in the current version, calling assertAxiom from within the following callbacks does not work: newElem, newApp, push, pop. It is strongly advised to call it from within the following callbacks only: newEq, newDiseq, newAssignment, finalCheck. It is unclear whether this is a bug with Z3 or a feature.

    Attributes
    final
  8. def assumeEq (lhs: Z3AST, rhs: Z3AST): Unit

    Indicates to Z3 that in the model being built by the theory, two elements are equal.

    Indicates to Z3 that in the model being built by the theory, two elements are equal.

    Attributes
    final
  9. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  10. def delete : Unit

    Method that Z3 will call (if activated) to delete the theory.

    Method that Z3 will call (if activated) to delete the theory. After that call, no more callbacks will be made by Z3.

  11. def enableAxiomSimplification (flag: Boolean): Unit

    Attributes
    final
  12. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  13. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  14. def finalCheck : Boolean

    Method that Z3 will call (if activated) just before Z3 starts building a model.

  15. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  16. def getApp (i: Int): Z3AST

    Attributes
    final
  17. def getApps : Iterator[Z3AST]

    Returns an iterator over all theory function applications in the context.

    Returns an iterator over all theory function applications in the context.

    Attributes
    final
  18. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef → Any
  19. def getContext : Z3Context

    Attributes
    final
  20. def getElem (i: Int): Z3AST

    Attributes
    final
  21. def getElems : Iterator[Z3AST]

    Returns an iterator over all theory elements in the context.

    Returns an iterator over all theory elements in the context.

    Attributes
    final
  22. def getEqClassMembers (ast: Z3AST): Iterator[Z3AST]

    Returns an iterator over all elements of the equivalence class of a term.

    Returns an iterator over all elements of the equivalence class of a term.

    Attributes
    final
  23. def getEqClassNext (ast: Z3AST): Z3AST

    Attributes
    final
  24. def getEqClassRoot (ast: Z3AST): Z3AST

    Attributes
    final
  25. def getNumApps : Int

    Attributes
    final
  26. def getNumElems : Int

    Attributes
    final
  27. def getNumParents (ast: Z3AST): Int

    Attributes
    final
  28. def getParent (ast: Z3AST, i: Int): Z3AST

    Attributes
    final
  29. def getParents (ast: Z3AST): Iterator[Z3AST]

    Returns an iterator over all terms that have a given term as a subtree.

    Returns an iterator over all terms that have a given term as a subtree.

    Attributes
    final
  30. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  31. def initSearch : Unit

    Method that Z3 will call (if activated) when it starts the search.

  32. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  33. def isTheoryDecl (f: Z3FuncDecl): Boolean

    Attributes
    final
  34. def isTheoryValue (v: Z3AST): Boolean

    Attributes
    final
  35. def mkTheoryConstant (symbol: Z3Symbol, sort: Z3Sort): Z3AST

    Attributes
    final
  36. def mkTheoryFuncDecl (symbol: Z3Symbol, domainSorts: Seq[Z3Sort], rangeSort: Z3Sort): Z3FuncDecl

    Attributes
    final
  37. def mkTheorySort (symbol: Z3Symbol): Z3Sort

    Attributes
    final
  38. def mkTheoryValue (symbol: Z3Symbol, sort: Z3Sort): Z3AST

    Attributes
    final
  39. val name : String

  40. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  41. def newApp (app: Z3AST): Unit

    Method that Z3 will call (if activated) when an application of a theory function enters the context.

  42. def newAssignment (pred: Z3AST, polarity: Boolean): Unit

    Method that Z3 will call (if activated) when a theory predicate is assigned to a truth value in the logical context.

    Method that Z3 will call (if activated) when a theory predicate is assigned to a truth value in the logical context.

    pred

    the predicate

    polarity

    its truth value in the context

  43. def newDiseq (term1: Z3AST, term2: Z3AST): Unit

    Method that Z3 will call (if activated) when a disequality is concluded in the logical context.

  44. def newElem (elem: Z3AST): Unit

    Method that Z3 will call (if activated) when an element of a theory sort enters the context.

  45. def newEq (term1: Z3AST, term2: Z3AST): Unit

    Method that Z3 will call (if activated) when an equality is concluded in the logical context.

  46. def newRelevant (ast: Z3AST): Unit

  47. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  48. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  49. def pop : Unit

    Method that Z3 will call (if activated) when it backtracks a case-split.

  50. val ptr : Long

  51. def push : Unit

    Method that Z3 will call (if activated) when it creates a case-split (backtracking point).

  52. def reduceApp (funcDecl: Z3FuncDecl, args: Z3AST*): Option[Z3AST]

    Method that Z3 will call (if activated) to simplify an application of a theory function.

  53. def reduceDistinct (terms: Z3AST*): Option[Z3AST]

    Method that Z3 will call (if activated) to simplify a (n-ary) disequality tree, when the operands are of a theory sort.

  54. def reduceEq (term1: Z3AST, term2: Z3AST): Option[Z3AST]

    Method that Z3 will call (if activated) to simplify an equality tree, when the operands are of a theory sort.

    Method that Z3 will call (if activated) to simplify an equality tree, when the operands are of a theory sort.

    term1

    the left operand of the equality

    term2

    the right operand of the equality

  55. def reset : Unit

    Method that Z3 will call (if activated) when the context is reset by the user.

  56. def restart : Unit

    Method that Z3 will call (if activated) when it restarts the search.

  57. def setCallbacks (delete: Boolean = false, reduceEq: Boolean = false, reduceApp: Boolean = false, reduceDistinct: Boolean = false, newApp: Boolean = false, newElem: Boolean = false, initSearch: Boolean = false, push: Boolean = false, pop: Boolean = false, restart: Boolean = false, reset: Boolean = false, finalCheck: Boolean = false, newEq: Boolean = false, newDiseq: Boolean = false, newAssignment: Boolean = false, newRelevant: Boolean = false): Unit

    Use this function at construction time to set which callbacks should be used.

    Use this function at construction time to set which callbacks should be used.

    Attributes
    final
  58. def showCallbacks (show: Boolean): Unit

    Displays all callbacks, with their arguments.

    Displays all callbacks, with their arguments. Off by default.

    show

    whether callbacks should be printed out

    Attributes
    final
  59. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  60. def toString (): String

    Definition Classes
    AnyRef → Any
  61. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  62. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  63. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from AnyRef

Inherited from Any