Files
agdaproofs/KeyValueWithDomain.agda
2019-01-10 22:36:55 +00:00

21 lines
748 B
Agda

{-# OPTIONS --warning=error --safe #-}
open import LogicalFormulae
open import Orders
open import Maybe
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
open import KeyValue
open import Vectors
open import Numbers.Naturals
module KeyValueWithDomain where
record MapWithDomain {a b c : _} (keyDom : Set a) (values : Set b) (keyOrder : TotalOrder {_} {c} keyDom) : Set (a b c) where
field
map : Map keyDom values keyOrder
domain : Vec keyDom (count map)
domainIsIt : keys map domain
lookup' : (key : keyDom) (vecContains domain key) Sg values (λ v lookup map key yes v)
lookup' k cont rewrite equalityCommutative domainIsIt = lookupCertain {keyOrder = keyOrder} map k cont