函手
functor。関手。共變函手 (covariant functor)
関手 - Wikipedia
functor in nLab
「關手」とは書かない
圈 C から圈 D への對應 F で、射の演算を保存するものを函手$ F:{\bf C}\to{\bf D}と呼ぶ
圖式的に描けば、$ a\xrightarrow{f}bが$ F(a)\xrightarrow{F(f)}F(b)に對應する
恆等射$ a\xrightarrow{\rm id}aは$ F(a)\xrightarrow{F({\rm id})}F(a)に對應する
$ a\xrightarrow{f}b\xrightarrow{g}cつまり合成射$ a\xrightarrow{f;g}cは$ F(a)\xrightarrow{F(f;g)=F(f);F(g)}F(c)に對應する
code:mmd
flowchart LR
subgraph C
a(a)---f--->b(b)---g--->c(c)
a---fg"f;g"--->c
end
subgraph D
Fa("F(a)")---Ff"F(f)"--->Fb("F(b)")---Fg"F(g)"--->Fc("F(c)")
Fa---FfFg"F(f);F(g)"--->Fc
end
a-.F.->Fa
b-.F.->Fb
c-.F.->Fc
f-.F.->Ff
g-.F.->Fg
fg-.F.->FfFg
%% 恆等射の對應も重要だが省略する
反變函手 (contravariant functor)$ F:{\bf C}^{\rm op}\to{\bf D}
ScalaScala.iconに於いては、型 F[T] と型構築子 def F[T](t: T): F[T] が函手であるとは、函數 f が def f(a: A): B = b である時に、F[A](a).map[B](f) == F[B](b) となる method def map[B](f: A => B): F[B] が定義されてゐる事を言ふ
恆等函數と合成函數は當然保存する樣に定義する
この型でない map method を定義する事はまづ無い筈なので、map method が定義されてゐればたぶん函手である
例 : Seq 型。List 型。Option 型。Try 型。Either 型。Future 型
fold method、withFilter method、flatMap method、for 內包表記等はこの應用として在るので、函手の image は持っておかう
HaskellHaskell.icon に類比すれば
fold method が有れば Foldable 型
flatMap method が有れば Monad 型
更に withFilter method が有れば MonadPlus 型
RubyRuby.icon の Enumerable とは似てゐるが異なる發想が基になってゐる事を讀み取って欲しい
module Enumerable (Ruby 3.2 リファレンスマニュアル)
型 class として定義すると
Functor
猫番 — Functor
充満関手と忠実関手 - Wikipedia
局所的に小さい圈の閒の函手を考へる
充滿函手 (full functor)
full functor in nLab
函手$ F:{\bf C}\to{\bf D}の內の各對象每の射の對應$ {\bf C}(X,Y)\to{\bf D}(F(X),F(Y))が全て全射である場合を言ふ
忠實函手 (faithful functor)
faithful functor in nLab
函手$ F:{\bf C}\to{\bf D}の內の各對象每の射の對應$ {\bf C}(X,Y)\to{\bf D}(F(X),F(Y))が全て單射である場合を言ふ
充滿忠實函手 (fully faithful functor)
full and faithful functor in nLab
函手$ F:{\bf C}\to{\bf D}の內の各對象每の射の對應$ {\bf C}(X,Y)\to{\bf D}(F(X),F(Y))が全て全單射である場合を言ふ
充滿部分圈 (full subcategory)
部分圏 - Wikipedia#:~:充満部分圏
full subcategory in nLab
圈$ \bf Cの充滿部分圈とは、部分圈 (subcategory)$ \bf D_{\subset{\bf C}}であって、全ての對象に於いて$ {\bf D}(A,B)={\bf C}(A,B)であるものを言ふ
部分圈からの包含函手 (inclusion functor) は忠實函手でありかつ對象上單射となるが、充滿部分圈では更に充滿函手にもなる
本質的單射 (essentially injective)
essentially injective functor in nLab
函手$ F:{\bf C}\to{\bf D}が$ \forall {c_1,c_2}_{\in|{\bf C}|}(F(c_1)\cong F(c_2)\supset c_1\cong c_2)ならば本質的單射であると言ふ
對象上單射 (injective on objects)
injective-on-objects functor in nLab
同型ではなく等式$ \forall {c_1,c_2}_{\in|{\bf C}|}(F(c_1)=F(c_2)\supset c_1=c_2)が成り立つならば、卽ち函手の內の對象閒の寫像$ |{\bf C}|\to|{\bf D}|が單射ならば對象上單射であると言ふ
本質的全射 (essentially surjective。dense)
本質的全射 - Wikipedia
essentially surjective functor in nLab
函手$ F:{\bf C}\to{\bf D}が$ \forall d_{\in|{\bf D}|}\exist c_{\in|{\bf C}|}(F(c)\cong d)ならば本質的全射であると言ふ
對象上全射 (surjective on objects)
surjective on objects functor in nLab
同型ではなく等式$ \forall d_{\in|{\bf D}|}\exist c_{\in|{\bf C}|}(F(c)=d)が成り立つならば、卽ち函手の內の對象閒の寫像$ |{\bf C}|\to|{\bf D}|が全射ならば對象上全射であると言ふ
本質的全射かつ忠實
essentially surjective and full functor in nLab
自由函手$ \dashv忘卻函手
定値函手$ \varDelta X
對角函手$ \varDelta_{\bf J}
自己函手 (endofunctor)
endofunctor in nLab
表現可能函手
完全函手
導來函手
pro 函手 (profunctor)
Profunctor - Wikipedia
profunctor in nLab
Data.Profunctor
ココンマ圏とprofunctor
pro 函手$ \phi:{\bf C}\nrightarrow{\bf D} とは函手$ \phi:{\bf D}^{\rm op}\times{\bf C}\to{\bf Set} を言ふ。函手$ \hat\phi:{\bf C}\to[{\bf D}^{\rm op},{\bf Set}] とも見做せる
anafunctor
Anafunctor - Wikipedia
anafunctor in nLab
infinity-anafunctor in nLab
anafunction in nLab
anafunctorの圏論|zorn
選択公理なしの圏論
(∞,1)-函手
(infinity,1)-functor in nLab
擬圈を model とした定義