| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Monoidal.CompactClosed
Description
Compact closed categories: star-autonomous categories whose dual distributes over the tensor
(distribDual, dualUnit), so that every object has a duality unit and counit (dualityUnit,
dualityCounit) and every morphism x ** u ~> y ** u has a trace (traceCC).
Synopsis
- class (StarAutonomous k, SymMonoidal k) => CompactClosed k where
- dualUnitInv :: CompactClosed k => (Unit :: k) ~> Dual (Unit :: k)
- dualityUnitDefault :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Unit :: k) ~> (a ** Dual a)
- dualityUnitS :: forall {k} (a :: k). (CompactClosed k, Ob a) => ('[] :: [k]) ~> '[a, Dual a]
- dualityCounitDefault :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Dual a ** a) ~> (Unit :: k)
- dualityCounitS :: forall {k} (a :: k). (CompactClosed k, Ob a) => '[Dual a, a] ~> ('[] :: [k])
- combineDual :: forall {k} (a :: k) (b :: k). (CompactClosed k, Ob a, Ob b) => (Dual a ** Dual b) ~> Dual (a ** b)
- combineDualS :: forall {k} (a :: k) (b :: k). (CompactClosed k, Ob a, Ob b) => '[Dual a, Dual b] ~> '[Dual (a ** b)]
- dimension :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Unit :: k) ~> (Unit :: k)
- traceCCS :: forall {k} (u :: k) (x :: k) (y :: k). (CompactClosed k, Ob x, Ob y, Ob u) => ('[x, u] ~> '[y, u]) -> '[x] ~> '[y]
- traceCC :: forall {k} (u :: k) (x :: k) (y :: k). (CompactClosed k, Ob x, Ob y, Ob u) => ((x ** u) ~> (y ** u)) -> x ~> y
- coactCC :: forall {m} {k} (t :: (m, k) +-> k) (u :: m) (x :: k) (y :: k). (CompactClosed m, MonoidalAction t, Ob x, Ob y, Ob u) => (Act t u x ~> Act t u y) -> x ~> y
- type CompactClosedStructures = '[Monoidal, SymMonoidal, Closed, StarAutonomous, CompactClosed]
Documentation
class (StarAutonomous k, SymMonoidal k) => CompactClosed k where Source Github #
Methods
distribDual :: forall (a :: k) (b :: k). (Ob a, Ob b) => Dual (a ** b) ~> (Dual a ** Dual b) Source Github #
dualUnit :: Dual (Unit :: k) ~> (Unit :: k) Source Github #
dualityUnit :: forall (a :: k). Ob a => (Unit :: k) ~> (a ** Dual a) Source Github #
The unit of the duality between a and its dual. dualityUnitDefault gives it from the
*-autonomous structure; an instance with cups of its own can use them. (There is no default
method: a occurs only under type families, so GHC could not instantiate one.)
dualityCounit :: forall (a :: k). Ob a => (Dual a ** a) ~> (Unit :: k) Source Github #
The counit of the duality between a and its dual; see dualityCounitDefault.
Instances
dualUnitInv :: CompactClosed k => (Unit :: k) ~> Dual (Unit :: k) Source Github #
dualityUnitDefault :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Unit :: k) ~> (a ** Dual a) Source Github #
dualityUnit from the *-autonomous structure.
dualityUnitS :: forall {k} (a :: k). (CompactClosed k, Ob a) => ('[] :: [k]) ~> '[a, Dual a] Source Github #
dualityCounitDefault :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Dual a ** a) ~> (Unit :: k) Source Github #
dualityCounit from the *-autonomous structure.
dualityCounitS :: forall {k} (a :: k). (CompactClosed k, Ob a) => '[Dual a, a] ~> ('[] :: [k]) Source Github #
combineDual :: forall {k} (a :: k) (b :: k). (CompactClosed k, Ob a, Ob b) => (Dual a ** Dual b) ~> Dual (a ** b) Source Github #
combineDualS :: forall {k} (a :: k) (b :: k). (CompactClosed k, Ob a, Ob b) => '[Dual a, Dual b] ~> '[Dual (a ** b)] Source Github #
dimension :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Unit :: k) ~> (Unit :: k) Source Github #
The dimension of a: the trace of its identity, as a scalar.
traceCCS :: forall {k} (u :: k) (x :: k) (y :: k). (CompactClosed k, Ob x, Ob y, Ob u) => ('[x, u] ~> '[y, u]) -> '[x] ~> '[y] Source Github #
traceCC :: forall {k} (u :: k) (x :: k) (y :: k). (CompactClosed k, Ob x, Ob y, Ob u) => ((x ** u) ~> (y ** u)) -> x ~> y Source Github #
coactCC :: forall {m} {k} (t :: (m, k) +-> k) (u :: m) (x :: k) (y :: k). (CompactClosed m, MonoidalAction t, Ob x, Ob y, Ob u) => (Act t u x ~> Act t u y) -> x ~> y Source Github #
type CompactClosedStructures = '[Monoidal, SymMonoidal, Closed, StarAutonomous, CompactClosed] Source Github #
The structures the free category needs for CompactClosed, and those its laws are stated for.