Generated Array constructors, sort-erased #
Equality of two arrays at every index from lo to hi, both included.
Needs cvc5's arrays-exp option, and an integer, real, bit-vector or floating-point index.
Equations
- lft.eqRange rgt lo hi = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.EQ_RANGE #[lft, rgt, lo, hi]
Instances For
Writes an element at an index, yielding the updated array.
Equations
- arr.store idx elm = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.STORE #[arr, idx, elm]
Instances For
Reads the element stored at an index.
Equations
- arr.select idx = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SELECT #[arr, idx]
Instances For
Array's operators, taken apart one level, sort-erased.
- select
[Ω]
(arr idx : Term)
: View.Array
Reads the element stored at an index.
- store
[Ω]
(arr idx elm : Term)
: View.Array
Writes an element at an index, yielding the updated array.
- eqRange
[Ω]
(lft rgt lo hi : Term)
: View.Array
Equality of two arrays at every index from
lotohi, both included.Needs cvc5's
arrays-expoption, and an integer, real, bit-vector or floating-point index.
Instances For
Takes a term apart one level, if Array owns its operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Values #
A TotalMap denotes an SMT array: a constant array holding the default element, with one store
per binding. Reading one back peels that spine, keeping the outermost store for a repeated index
since it is the one that wins.
Determine if this term is a constant array.
Equations
- term.isConstArray = (Cvc.Untyped.Term.toUnsafe✝ term).isConstArray
Instances For
The default element of a constant-array term, if it is one.
Equations
Instances For
The array term denoting a total map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The total map a constant array term denotes.
Equations
Instances For
Equations
- Cvc.Untyped.Term.instValueToTermTotalMap = { valueToTerm := fun [Cvc.Ω] => Cvc.Untyped.Term.mkArrayValue }
Equations
- Cvc.Untyped.Term.instTermToValueTotalMap = { termToValue := fun [Cvc.Ω] => Cvc.Untyped.Term.getArrayValue }