Reshuffle orders (#91)

This commit is contained in:
Patrick Stevens
2019-12-29 12:11:21 +00:00
committed by GitHub
parent 876396eaaa
commit b6ef9b46f2
57 changed files with 476 additions and 462 deletions

View File

@@ -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