Add a 'set' lattice backed by maps
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
19
Lattice/MapSet.agda
Normal file
19
Lattice/MapSet.agda
Normal file
@@ -0,0 +1,19 @@
|
||||
open import Lattice
|
||||
open import Relation.Binary.PropositionalEquality as Eq using (_≡_; refl; sym; trans; cong; subst)
|
||||
open import Relation.Binary.Definitions using (Decidable)
|
||||
open import Agda.Primitive using (Level) renaming (_⊔_ to _⊔ℓ_)
|
||||
|
||||
module Lattice.MapSet {a : Level} (A : Set a) (≡-dec-A : Decidable (_≡_ {a} {A})) where
|
||||
|
||||
open import Lattice.Unit using (⊤) renaming (_≈_ to _≈₂_; _⊔_ to _⊔₂_; _⊓_ to _⊓₂_; isLattice to ⊤-isLattice)
|
||||
import Lattice.Map
|
||||
|
||||
private module UnitMap = Lattice.Map A ⊤ _≈₂_ _⊔₂_ _⊓₂_ ≡-dec-A ⊤-isLattice
|
||||
open UnitMap using (Map)
|
||||
open UnitMap using
|
||||
( _⊆_; _≈_; ≈-equiv; _⊔_; _⊓_
|
||||
; isUnionSemilattice; isIntersectSemilattice; isLattice
|
||||
) public
|
||||
|
||||
MapSet : Set a
|
||||
MapSet = Map
|
||||
Reference in New Issue
Block a user