Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Category.Equipment.Limit
Synopsis
- class (HasCompanions hk vk, Ob j) => HasLimits (vk :: CAT s) (j :: hk i a) (k :: s) where
- type Limit (j :: hk i a) (d :: vk i k) :: vk a k
- limitObj :: forall (d :: vk i k). Ob d => Obj (Limit j d)
- limit :: forall (d :: vk i k). Ob d => O (Companion hk (Limit j d)) j ~> Companion hk d
- limitUniv :: forall (d :: vk i k) (p :: vk a k). (Ob d, Ob p) => (O (Companion hk p) j ~> Companion hk d) -> p ~> Limit j d
- class (HasCompanions hk vk, Ob j) => HasColimits (vk :: CAT s) (j :: hk a i) (k :: s) where
- type Colimit (j :: hk a i) (d :: vk i k) :: vk a k
- colimitObj :: forall (d :: vk i k). Ob d => Obj (Colimit j d)
- colimit :: forall (d :: vk i k). Ob d => O (Companion hk d) j ~> Companion hk (Colimit j d)
- colimitUniv :: forall (d :: vk i k) (p :: vk a k). (Ob d, Ob p) => (O (Companion hk d) j ~> Companion hk p) -> Colimit j d ~> p
- type family TerminalObject (hk :: CAT s) (vk :: CAT s) :: s
- class HasCompanions hk vk => HasTerminalObject (hk :: CAT s) (vk :: CAT s) where
- type Terminate (hk :: CAT s) (vk :: CAT s) (j :: s) :: vk j (TerminalObject hk vk)
- terminate :: forall (j :: s). Ob0 vk j => Obj (Terminate hk vk j)
- termUniv :: forall (i :: s) (j :: s) (p :: hk i j). (Ob0 vk i, Ob0 vk j, Ob p) => Sq '(p, Terminate hk vk j) '(I :: hk (TerminalObject hk vk) (TerminalObject hk vk), Terminate hk vk i)
- type family InitialObject (hk :: CAT s) (vk :: CAT s) :: s
- class HasCompanions hk vk => HasInitialObject (hk :: CAT s) (vk :: CAT s) where
- type Initiate (hk :: CAT s) (vk :: CAT s) (j :: s) :: vk (InitialObject hk vk) j
- initiate :: forall (j :: s). Ob0 vk j => Obj (Initiate hk vk j)
- initUniv :: forall (i :: s) (j :: s) (p :: hk i j). (Ob0 vk i, Ob0 vk j, Ob p) => Sq '(I :: hk (InitialObject hk vk) (InitialObject hk vk), Initiate hk vk j) '(p, Initiate hk vk i)
- type family Product (hk :: CAT s) (vk :: CAT s) (a :: s) (b :: s) :: s
- class HasBinaryProducts (hk :: CAT s) (vk :: CAT s) where
- type Fst (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk (Product hk vk i j) i
- type Snd (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk (Product hk vk i j) j
- type ProdV (hk :: CAT s) (vk :: CAT s) (f :: vk k i) (g :: vk k j) :: vk k (Product hk vk i j)
- type ProdH (hk :: CAT s) (vk :: CAT s) (p :: hk j k) (q :: hk j' k') :: hk (Product hk vk j j') (Product hk vk k k')
- fstObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Fst hk vk i j)
- sndObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Snd hk vk i j)
- prodObj :: forall (j :: s) (a :: s) (b :: s) (f :: vk j a) (g :: vk j b). (Ob0 vk j, Ob0 vk a, Ob0 vk b, Ob f, Ob g) => Obj (ProdV hk vk f g)
- prodUniv :: forall {i :: s} {j :: s} (k :: s) (k' :: s) (p :: hk k k') (i' :: s) (f' :: vk k' i') (a :: hk i i') (f :: vk k i) (j' :: s) (g' :: vk k' j') (b :: hk j j') (g :: vk k j). Sq '(p, f') '(a, f) -> Sq '(p, g') '(b, g) -> Sq '(p, ProdV hk vk f' g') '(ProdH hk vk a b, ProdV hk vk f g)
- type family Coproduct (hk :: CAT s) (vk :: CAT s) (a :: s) (b :: s) :: s
- class HasBinaryCoproducts (hk :: CAT s) (vk :: CAT s) where
- type Lft (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk i (Coproduct hk vk i j)
- type Rgt (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk j (Coproduct hk vk i j)
- type CoprodV (hk :: CAT s) (vk :: CAT s) (f :: vk i k) (g :: vk j k) :: vk (Coproduct hk vk i j) k
- type CoprodH (hk :: CAT s) (vk :: CAT s) (p :: hk j k) (q :: hk j' k') :: hk (Coproduct hk vk j j') (Coproduct hk vk k k')
- lftObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Lft hk vk i j)
- rgtObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Rgt hk vk i j)
- coprodObj :: forall (j :: s) (a :: s) (b :: s) (f :: vk a j) (g :: vk b j). (Ob0 vk j, Ob0 vk a, Ob0 vk b, Ob f, Ob g) => Obj (CoprodV hk vk f g)
- coprodUniv :: forall (i :: s) (i' :: s) (a :: hk i i') (k' :: s) (f' :: vk i' k') (k :: s) (p :: hk k k') (f :: vk i k) (j :: s) (j' :: s) (b :: hk j j') (g' :: vk j' k') (g :: vk j k). Sq '(a, f') '(p, f) -> Sq '(b, g') '(p, g) -> Sq '(CoprodH hk vk a b, CoprodV hk vk f' g') '(p, CoprodV hk vk f g)
Documentation
class (HasCompanions hk vk, Ob j) => HasLimits (vk :: CAT s) (j :: hk i a) (k :: s) where Source Comments #
weighted limits
Methods
limitObj :: forall (d :: vk i k). Ob d => Obj (Limit j d) Source Comments #
limit :: forall (d :: vk i k). Ob d => O (Companion hk (Limit j d)) j ~> Companion hk d Source Comments #
limitUniv :: forall (d :: vk i k) (p :: vk a k). (Ob d, Ob p) => (O (Companion hk p) j ~> Companion hk d) -> p ~> Limit j d Source Comments #
Instances
(HasLimits j k, Ob j) => HasLimits FUNK ('PK j :: PROFK i a) (k :: Kind) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof Methods limitObj :: forall (d :: FUNK i k). Ob d => Obj (Limit ('PK j) d) Source Comments # limit :: forall (d :: FUNK i k). Ob d => O (Companion PROFK (Limit ('PK j) d)) ('PK j) ~> Companion PROFK d Source Comments # limitUniv :: forall (d :: FUNK i k) (p :: FUNK a k). (Ob d, Ob p) => (O (Companion PROFK p) ('PK j) ~> Companion PROFK d) -> p ~> Limit ('PK j) d Source Comments # | |
(Closed k, Ob j) => HasLimits (MonK k :: () -> () -> Type) ('MK j :: MonK k i a) '() Source Comments # | |
Defined in Proarrow.Category.Bicategory.MonoidalAsBi Methods limitObj :: forall (d :: MonK k i '()). Ob d => Obj (Limit ('MK j :: MonK k i a) d) Source Comments # limit :: forall (d :: MonK k i '()). Ob d => O (Companion (MonK k) (Limit ('MK j :: MonK k i a) d)) ('MK j :: MonK k i a) ~> Companion (MonK k) d Source Comments # limitUniv :: forall (d :: MonK k i '()) (p :: MonK k a '()). (Ob d, Ob p) => (O (Companion (MonK k) p) ('MK j :: MonK k i a) ~> Companion (MonK k) d) -> p ~> Limit ('MK j :: MonK k i a) d Source Comments # |
class (HasCompanions hk vk, Ob j) => HasColimits (vk :: CAT s) (j :: hk a i) (k :: s) where Source Comments #
weighted colimits
Methods
colimitObj :: forall (d :: vk i k). Ob d => Obj (Colimit j d) Source Comments #
colimit :: forall (d :: vk i k). Ob d => O (Companion hk d) j ~> Companion hk (Colimit j d) Source Comments #
colimitUniv :: forall (d :: vk i k) (p :: vk a k). (Ob d, Ob p) => (O (Companion hk d) j ~> Companion hk p) -> Colimit j d ~> p Source Comments #
Instances
(HasColimits j k, Ob j) => HasColimits FUNK ('PK j :: PROFK a i) (k :: Kind) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof Methods colimitObj :: forall (d :: FUNK i k). Ob d => Obj (Colimit ('PK j) d) Source Comments # colimit :: forall (d :: FUNK i k). Ob d => O (Companion PROFK d) ('PK j) ~> Companion PROFK (Colimit ('PK j) d) Source Comments # colimitUniv :: forall (d :: FUNK i k) (p :: FUNK a k). (Ob d, Ob p) => (O (Companion PROFK d) ('PK j) ~> Companion PROFK p) -> Colimit ('PK j) d ~> p Source Comments # | |
(Monoidal k, Ob j) => HasColimits (MonK k :: () -> () -> Type) ('MK j :: MonK k a i) '() Source Comments # | |
Defined in Proarrow.Category.Bicategory.MonoidalAsBi Methods colimitObj :: forall (d :: MonK k i '()). Ob d => Obj (Colimit ('MK j :: MonK k a i) d) Source Comments # colimit :: forall (d :: MonK k i '()). Ob d => O (Companion (MonK k) d) ('MK j :: MonK k a i) ~> Companion (MonK k) (Colimit ('MK j :: MonK k a i) d) Source Comments # colimitUniv :: forall (d :: MonK k i '()) (p :: MonK k a '()). (Ob d, Ob p) => (O (Companion (MonK k) d) ('MK j :: MonK k a i) ~> Companion (MonK k) p) -> Colimit ('MK j :: MonK k a i) d ~> p Source Comments # |
type family TerminalObject (hk :: CAT s) (vk :: CAT s) :: s Source Comments #
Instances
type TerminalObject PROFK FUNK Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof |
class HasCompanions hk vk => HasTerminalObject (hk :: CAT s) (vk :: CAT s) where Source Comments #
Associated Types
type Terminate (hk :: CAT s) (vk :: CAT s) (j :: s) :: vk j (TerminalObject hk vk) Source Comments #
Methods
terminate :: forall (j :: s). Ob0 vk j => Obj (Terminate hk vk j) Source Comments #
termUniv :: forall (i :: s) (j :: s) (p :: hk i j). (Ob0 vk i, Ob0 vk j, Ob p) => Sq '(p, Terminate hk vk j) '(I :: hk (TerminalObject hk vk) (TerminalObject hk vk), Terminate hk vk i) Source Comments #
type family InitialObject (hk :: CAT s) (vk :: CAT s) :: s Source Comments #
Instances
type InitialObject PROFK FUNK Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof |
class HasCompanions hk vk => HasInitialObject (hk :: CAT s) (vk :: CAT s) where Source Comments #
Associated Types
type Initiate (hk :: CAT s) (vk :: CAT s) (j :: s) :: vk (InitialObject hk vk) j Source Comments #
Methods
initiate :: forall (j :: s). Ob0 vk j => Obj (Initiate hk vk j) Source Comments #
initUniv :: forall (i :: s) (j :: s) (p :: hk i j). (Ob0 vk i, Ob0 vk j, Ob p) => Sq '(I :: hk (InitialObject hk vk) (InitialObject hk vk), Initiate hk vk j) '(p, Initiate hk vk i) Source Comments #
class HasBinaryProducts (hk :: CAT s) (vk :: CAT s) where Source Comments #
Associated Types
type Fst (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk (Product hk vk i j) i Source Comments #
type Snd (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk (Product hk vk i j) j Source Comments #
type ProdV (hk :: CAT s) (vk :: CAT s) (f :: vk k i) (g :: vk k j) :: vk k (Product hk vk i j) Source Comments #
type ProdH (hk :: CAT s) (vk :: CAT s) (p :: hk j k) (q :: hk j' k') :: hk (Product hk vk j j') (Product hk vk k k') Source Comments #
Methods
fstObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Fst hk vk i j) Source Comments #
sndObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Snd hk vk i j) Source Comments #
prodObj :: forall (j :: s) (a :: s) (b :: s) (f :: vk j a) (g :: vk j b). (Ob0 vk j, Ob0 vk a, Ob0 vk b, Ob f, Ob g) => Obj (ProdV hk vk f g) Source Comments #
prodUniv :: forall {i :: s} {j :: s} (k :: s) (k' :: s) (p :: hk k k') (i' :: s) (f' :: vk k' i') (a :: hk i i') (f :: vk k i) (j' :: s) (g' :: vk k' j') (b :: hk j j') (g :: vk k j). Sq '(p, f') '(a, f) -> Sq '(p, g') '(b, g) -> Sq '(p, ProdV hk vk f' g') '(ProdH hk vk a b, ProdV hk vk f g) Source Comments #
Instances
HasBinaryProducts PROFK FUNK Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Bicategory.Prof Associated Types
Methods fstObj :: (Ob0 FUNK i, Ob0 FUNK j) => Obj (Fst PROFK FUNK i j) Source Comments # sndObj :: (Ob0 FUNK i, Ob0 FUNK j) => Obj (Snd PROFK FUNK i j) Source Comments # prodObj :: forall j a b (f :: FUNK j a) (g :: FUNK j b). (Ob0 FUNK j, Ob0 FUNK a, Ob0 FUNK b, Ob f, Ob g) => Obj (ProdV PROFK FUNK f g) Source Comments # prodUniv :: forall {i} {j} k k' (p :: PROFK k k') i' (f' :: FUNK k' i') (a :: PROFK i i') (f :: FUNK k i) j' (g' :: FUNK k' j') (b :: PROFK j j') (g :: FUNK k j). Sq '(p, f') '(a, f) -> Sq '(p, g') '(b, g) -> Sq '(p, ProdV PROFK FUNK f' g') '(ProdH PROFK FUNK a b, ProdV PROFK FUNK f g) Source Comments # |
class HasBinaryCoproducts (hk :: CAT s) (vk :: CAT s) where Source Comments #
Associated Types
type Lft (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk i (Coproduct hk vk i j) Source Comments #
type Rgt (hk :: CAT s) (vk :: CAT s) (i :: s) (j :: s) :: vk j (Coproduct hk vk i j) Source Comments #
type CoprodV (hk :: CAT s) (vk :: CAT s) (f :: vk i k) (g :: vk j k) :: vk (Coproduct hk vk i j) k Source Comments #
type CoprodH (hk :: CAT s) (vk :: CAT s) (p :: hk j k) (q :: hk j' k') :: hk (Coproduct hk vk j j') (Coproduct hk vk k k') Source Comments #
Methods
lftObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Lft hk vk i j) Source Comments #
rgtObj :: forall (i :: s) (j :: s). (Ob0 vk i, Ob0 vk j) => Obj (Rgt hk vk i j) Source Comments #
coprodObj :: forall (j :: s) (a :: s) (b :: s) (f :: vk a j) (g :: vk b j). (Ob0 vk j, Ob0 vk a, Ob0 vk b, Ob f, Ob g) => Obj (CoprodV hk vk f g) Source Comments #
coprodUniv :: forall (i :: s) (i' :: s) (a :: hk i i') (k' :: s) (f' :: vk i' k') (k :: s) (p :: hk k k') (f :: vk i k) (j :: s) (j' :: s) (b :: hk j j') (g' :: vk j' k') (g :: vk j k). Sq '(a, f') '(p, f) -> Sq '(b, g') '(p, g) -> Sq '(CoprodH hk vk a b, CoprodV hk vk f' g') '(p, CoprodV hk vk f g) Source Comments #
Instances
HasBinaryCoproducts PROFK FUNK Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Bicategory.Prof Associated Types
Methods lftObj :: (Ob0 FUNK i, Ob0 FUNK j) => Obj (Lft PROFK FUNK i j) Source Comments # rgtObj :: (Ob0 FUNK i, Ob0 FUNK j) => Obj (Rgt PROFK FUNK i j) Source Comments # coprodObj :: forall j a b (f :: FUNK a j) (g :: FUNK b j). (Ob0 FUNK j, Ob0 FUNK a, Ob0 FUNK b, Ob f, Ob g) => Obj (CoprodV PROFK FUNK f g) Source Comments # coprodUniv :: forall i i' (a :: PROFK i i') k' (f' :: FUNK i' k') k (p :: PROFK k k') (f :: FUNK i k) j j' (b :: PROFK j j') (g' :: FUNK j' k') (g :: FUNK j k). Sq '(a, f') '(p, f) -> Sq '(b, g') '(p, g) -> Sq '(CoprodH PROFK FUNK a b, CoprodV PROFK FUNK f' g') '(p, CoprodV PROFK FUNK f g) Source Comments # |