array.go

Array operations (select, store, constant arrays)

Functions

MkArrayDefault

func (c *Context) MkArrayDefault(array *Expr) *Expr

MkArrayDefault returns the default value of an array.

MkArrayExt

func (c *Context) MkArrayExt(a1, a2 *Expr) *Expr

MkArrayExt returns the extensionality witness for two arrays. Two arrays are equal if and only if they are equal on the index returned by MkArrayExt.

MkArraySort

func (c *Context) MkArraySort(domain, range_ *Sort) *Sort

Array operations and sorts MkArraySort creates an array sort.

MkAsArray

func (c *Context) MkAsArray(f *FuncDecl) *Expr

MkAsArray creates an array from a function declaration. The resulting array maps each input to the output of the function.

MkConstArray

func (c *Context) MkConstArray(sort *Sort, value *Expr) *Expr

MkConstArray creates a constant array.

MkMap

func (c *Context) MkMap(f *FuncDecl, arrays ...*Expr) *Expr

MkMap applies a function to the elements of one or more arrays, returning a new array. The function f is applied element-wise to the given arrays.

MkSelect

func (c *Context) MkSelect(array, index *Expr) *Expr

MkSelect creates an array read (select) operation.

MkSelectN

func (c *Context) MkSelectN(array *Expr, indices []*Expr) *Expr

MkSelectN creates a multi-index array read (select) operation.

MkStore

func (c *Context) MkStore(array, index, value *Expr) *Expr

MkStore creates an array write (store) operation.

MkStoreN

func (c *Context) MkStoreN(array *Expr, indices []*Expr, value *Expr) *Expr

MkStoreN creates a multi-index array write (store) operation.