Zee3.StdLib.Sort
(zee3 v0.4.0)
Copy Markdown
Standard SMT-LIB2 Sorts (Types) for the Zee3 DSL.
All functions return an AST node representing an S-Expression.
Summary
Functions
Creates an Array sort mapping a domain to a range. Generates SMT: (Array domain_sort range_sort)
Creates a BitVector sort of a specific size. Generates SMT: (_ BitVec size)
A special sort which serves as an alias for a BitVec of length 32.
Creates a custom FloatingPoint sort. eb: exponent bits, sb: significand bits. Generates SMT: (_ FloatingPoint eb sb)
Functions
Creates an Array sort mapping a domain to a range. Generates SMT: (Array domain_sort range_sort)
@spec bit_vec(integer() | Zee3.Smt2.t()) :: Zee3.Smt2.t()
Creates a BitVector sort of a specific size. Generates SMT: (_ BitVec size)
@spec bool() :: Zee3.Smt2.t()
@spec entity_id() :: Zee3.Smt2.t()
A special sort which serves as an alias for a BitVec of length 32.
This is meant to be used as the type of entity IDs for the datalog engine, which needs a finite sort, and defaulting to a BitVec of this size seems like a safe option.
@spec float16() :: Zee3.Smt2.t()
@spec float32() :: Zee3.Smt2.t()
@spec float64() :: Zee3.Smt2.t()
@spec float128() :: Zee3.Smt2.t()
@spec floating_point(integer() | Zee3.Smt2.t(), integer() | Zee3.Smt2.t()) :: Zee3.Smt2.t()
@spec floating_point(Zee3.Smt2.t(), Zee3.Smt2.t()) :: Zee3.Smt2.t()
Creates a custom FloatingPoint sort. eb: exponent bits, sb: significand bits. Generates SMT: (_ FloatingPoint eb sb)
@spec int() :: Zee3.Smt2.t()
@spec real() :: Zee3.Smt2.t()
@spec reg_lan() :: Zee3.Smt2.t()
@spec rounding_mode() :: Zee3.Smt2.t()
@spec string() :: Zee3.Smt2.t()