mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-19 18:18:39 +00:00
Reshuffle orders (#91)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
{-# OPTIONS --warning=error --safe --without-K #-}
|
||||
|
||||
open import LogicalFormulae
|
||||
open import Orders
|
||||
open import Maybe
|
||||
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
|
||||
open import Vectors
|
||||
@@ -9,14 +8,15 @@ open import Vectors
|
||||
open import Numbers.Naturals.Semiring
|
||||
open import Numbers.Naturals.Order
|
||||
|
||||
module KeyValue.KeyValue where
|
||||
record KeyValue {a b c : _} (keys : Set a) (values : Set b) (maps : Set c) : Set (a ⊔ b ⊔ c) where
|
||||
field
|
||||
tryFind : maps → keys → Maybe values
|
||||
add : (map : maps) → keys → values → maps
|
||||
empty : maps
|
||||
count : maps → ℕ
|
||||
lookupAfterAdd : (map : maps) → (k : keys) → (v : values) → tryFind (add map k v) k ≡ yes v
|
||||
lookupAfterAdd' : (map : maps) → (k1 : keys) → (v : values) → (k2 : keys) → (k1 ≡ k2) || (tryFind (add map k1 v) k2 ≡ tryFind map k2)
|
||||
countAfterAdd' : (map : maps) → (k : keys) → (v : values) → (tryFind map k ≡ no) → count (add map k v) ≡ succ (count map)
|
||||
countAfterAdd : (map : maps) → (k : keys) → (v1 v2 : values) → (tryFind map k ≡ yes v2) → count (add map k v1) ≡ count map
|
||||
module KeyValue.KeyValue {a b : _} (keys : Set a) (values : Set b) where
|
||||
|
||||
record KeyValue {c : _} (maps : Set c) : Set (a ⊔ b ⊔ c) where
|
||||
field
|
||||
tryFind : maps → keys → Maybe values
|
||||
add : (map : maps) → keys → values → maps
|
||||
empty : maps
|
||||
count : maps → ℕ
|
||||
lookupAfterAdd : (map : maps) → (k : keys) → (v : values) → tryFind (add map k v) k ≡ yes v
|
||||
lookupAfterAdd' : (map : maps) → (k1 : keys) → (v : values) → (k2 : keys) → (k1 ≡ k2) || (tryFind (add map k1 v) k2 ≡ tryFind map k2)
|
||||
countAfterAdd' : (map : maps) → (k : keys) → (v : values) → (tryFind map k ≡ no) → count (add map k v) ≡ succ (count map)
|
||||
countAfterAdd : (map : maps) → (k : keys) → (v1 v2 : values) → (tryFind map k ≡ yes v2) → count (add map k v1) ≡ count map
|
||||
|
Reference in New Issue
Block a user