Arrays #
The Lean type denoting an SMT array: a default element plus the finitely many indices that differ
from it. Indices are held in a Std.TreeMap, so the index type must be ordered.
Converting a total map to a term and back is done by Cvc.Untyped.Theory.Array and
Cvc.Typed.Theory.Array.
A total map from α (the indices) to β (the elements), used to encode SMT-LIB arrays.
- defaultElem : β
Default element that all indices not captured by
mapare mapped to. - map : Std.TreeMap α β compare
Maps indices to elements.
Instances For
Equations
- Cvc.TotalMap.mkConst defaultElem = { defaultElem := defaultElem }
Instances For
Equations
Instances For
@[instance_reducible]
Equations
- Cvc.TotalMap.instInhabited = { default := Cvc.TotalMap.default }
@[instance_reducible]
Equations
- Cvc.TotalMap.instToTyp = { typ := Cvc.Typ.arrayTo (Cvc.Typ?.typ (Cvc.Typ.of α)) (Cvc.Typ?.typ (Cvc.Typ.of β)) }
Basic operations #
Equations
- map.get key = (map.get? key).getD map.defaultElem
Instances For
String representation #
@[instance_reducible]
Equations
- Cvc.TotalMap.instToString = { toString := Cvc.TotalMap.toString }