mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-07 12:58:39 +00:00
21 lines
748 B
Agda
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
|