Arrays, typed #
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.Untyped.Term.eqRange lft rgt lo hi
Instances For
The array mapping every index, of sort ι, to default.
Equations
- default.mkConstArray = do let srtOfι ← Cvc.Srt.of ι Cvc.Untyped.Term.mkConstArray srtOfι default
Instances For
Array's operators, taken apart one level, indexed by the sort each produces.
- any
[Ω]
{τ : Typ}
: OnAny τ.Denote → View.Array τ
An operator whose result's sort is a type variable.
- array
[Ω]
(ξ ζ : Typ)
[Ord ξ.Denote]
: OnTotalMap ξ.Denote ζ.Denote → View.Array (Typ.arrayTo (Typ?.typ ξ) (Typ?.typ ζ))
An operator with a result of sort
TotalMap. - bool
[Ω]
: OnBool → View.Array Typ.bool
An operator with a result of sort
Bool.
Instances For
Array's operators with a result of sort TotalMap.
- store
[Ω]
{ξ : Type}
[Ord ξ]
[ToTyp ξ]
{ζ : Type}
[ToTyp ζ]
(arr : Term (TotalMap ξ ζ))
(idx : Term ξ)
(elm : Term ζ)
: OnTotalMap ξ ζ
Writes an element at an index, yielding the updated array.
Instances For
Array's operators with a result of sort Bool.
- eqRange
[Ω]
(ι κ : Typ)
(lft rgt : Term (Typ.arrayTo (Typ?.typ ι) (Typ?.typ κ)).Denote)
(lo hi : Term ι.Denote)
: OnBool
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, at its sort, if Array owns its operator and the term's sort fits it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Values #
Determine if this term is a constant array.
Equations
- term.isConstArray = Cvc.Untyped.Term.isConstArray term
Instances For
The array term denoting a total map.
Instances For
The total map a constant array term denotes.
Instances For
Equations
- Cvc.Typed.Term.instValueToTermTotalMap = { valueToTerm := fun [Cvc.Ω] => Cvc.Typed.Term.mkArrayValue }
Equations
- Cvc.Typed.Term.instTermToValueTotalMap = { termToValue := fun [Cvc.Ω] => Cvc.Typed.Term.getArrayValue }