# `Zee3.StdLib.Sort`

Standard SMT-LIB2 Sorts (Types) for the Zee3 DSL.

All functions return an AST node representing an S-Expression.

# `array`

Creates an Array sort mapping a domain to a range.
Generates SMT: (Array domain_sort range_sort)

# `bit_vec`

```elixir
@spec bit_vec(integer() | Zee3.Smt2.t()) :: Zee3.Smt2.t()
```

Creates a BitVector sort of a specific size.
Generates SMT: (_ BitVec size)

# `bool`

```elixir
@spec bool() :: Zee3.Smt2.t()
```

# `float16`

```elixir
@spec float16() :: Zee3.Smt2.t()
```

# `float32`

```elixir
@spec float32() :: Zee3.Smt2.t()
```

# `float64`

```elixir
@spec float64() :: Zee3.Smt2.t()
```

# `float128`

```elixir
@spec float128() :: Zee3.Smt2.t()
```

# `floating_point`

```elixir
@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)

# `int`

```elixir
@spec int() :: Zee3.Smt2.t()
```

# `real`

```elixir
@spec real() :: Zee3.Smt2.t()
```

# `reg_lan`

```elixir
@spec reg_lan() :: Zee3.Smt2.t()
```

# `rounding_mode`

```elixir
@spec rounding_mode() :: Zee3.Smt2.t()
```

# `string`

```elixir
@spec string() :: Zee3.Smt2.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
