Gibt es einen Standardnamen für einen Typkonstruktor F :: * -> * -> * -> *
mit Operationen
das ist ein kontravarianter Funktor im ersten Argument und ein kovarianter Funktor im zweiten und dritten? Entspricht dies insbesondere einer Art von Konstruktion in der Kategorientheorie?
Die Operationen führen zu einem
%Vor%Betrieb, der dies wie eine Art "Kategorie in der Kategorie der Endofunctors" erscheinen lässt, aber ich bin mir nicht sicher, wie das formalisiert werden könnte.
BEARBEITEN: Wie Chi darauf hinweist, hängt dies mit der indizierten Monade zusammen: Gegeben sei eine indizierte Monade
%Vor%Wir können die Atkey-Konstruktion verwenden
%Vor%und dann definieren
%Vor%um die Art von Monade zu bekommen, die wir wollen. Ich habe den Bau in Agda gemacht, um das zu überprüfen. Ich würde immer noch gerne wissen, ob diese limitiertere Struktur bekannt ist, obwohl.
Wie in den Kommentaren erwähnt, ist dies der Begriff einer parametrisierten Monade, der von Robert Atkey in seinen Parametrisierten Berechnungsvorstellungen Papier. Dies entspricht dem Begriff einer Kategorie, die in der Kategorientheorie um eine Kategorie von Endofunkern bereichert wurde.
Für eine Kategorie C
wird über eine Kategorie V
mit monoidaler Struktur (I, x)
bedeutet, dass für jedes Objekt X
, Y
von C
, das Hom-Objekt Hom(X, Y)
ein Objekt von V
ist und es Morphismen gibt, die die Identität und die Zusammensetzung angeben, I -> Hom(X, X)
und% Code%. Bestimmte Identitäts- und Assoziativitätsbedingungen müssen entsprechend den üblichen Anforderungen von Identität und Assoziativität für eine Kategorie gelten.
Eine Monade Hom(Y, Z) x Hom(X, Y) -> Hom(X, Z)
auf M
kann als eine Ein-Objekt-Kategorie angesehen werden, die über endofunctors auf C
angereichert ist. Da es nur ein Objekt C
gibt, gibt es auch ein Hom-Objekt X
, welches Hom(X, X)
ist. Die Rückkehroperation führt zu einem Identitätsmorphismus, einer natürlichen Transformation M
, und die Join-Operation führt zu einem Kompositionsmorphismus, einer natürlichen Transformation I -> M
. Die Identitäts- und Assoziativitätsbedingungen entsprechen dann genau denen einer Monade.
Eine parametrisierte Monade M x M -> M
auf M
mit Parametern aus einem Set C
kann als eine Kategorie mit Elementen von S
als Objekte betrachtet werden, angereichert über die endofunctors von S
. Das Hom-Objekt C
ist Hom(X, Y)
und die in der Frage beschriebenen Operationen M X Y
und return
führen wiederum zu den erforderlichen Familien von Morphismen.
Tags und Links haskell category-theory agda