Created
November 30, 2014 22:31
-
-
Save jonsterling/7d4d831edc37176b2cc1 to your computer and use it in GitHub Desktop.
Containers based multisetoid
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
record Container : Set where | |
constructor _▹_ | |
field | |
sh : Set | |
po : sh → Set | |
⟦_⟧ : Container → Set → Set | |
⟦ sh ▹ po ⟧ A = Σ[ s ∶ sh ] (po s → A) | |
module _ {A : Set} {C : Container} (Q : A → Set) where | |
Any : ⟦ C ⟧ A → Set | |
Any ⟨ s , f ⟩ = Σ[ p ∶ Container.po C s ] Q (f p) | |
All : ⟦ C ⟧ A → Set | |
All ⟨ s , f ⟩ = (p : Container.po C s) → Q (f p) | |
record GeneralizedMultisetoid {T : Container} ⦃ TF : SetEndofunctor ⟦ T ⟧ ⦄ (TM : SetMonad TF) : Set where | |
open SetMonad.SetMonad TM | |
open SetEndofunctor.SetEndofunctor TF | |
field | |
ob : Set | |
hom : ⟦ T ⟧ ob → ob → Set | |
reflexivity : {X : ob} | |
→ hom (point X) X | |
symmetry : {Tdom : ⟦ T ⟧ ob} {cod : ob} | |
(φ : hom Tdom cod) | |
→ All (λ x → x) (map (hom (point cod)) Tdom) | |
transitivity : {cod : ob} | |
(Tp : ⟦ T ⟧ (Σ[ Tdom ∶ ⟦ T ⟧ ob ] Σ ob (hom Tdom))) | |
→ hom (map (π₁ ∘ π₂) Tp) cod | |
→ hom (join (map π₁ Tp)) cod |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment