圏Setでのequaliserとcoequaliserの例

圏論の続き。equaliserとcoequaliser。

equaliserの例

対象X,Yで、射e:E->Y = equaliser(f:X->Y,g:X->Y) の定義

  • f.e = g.e (つまり∀a:E, f(e(a)) = g(e(a))となる)
  • f.h = g.hを満たす任意の射 h:H->X について、
    • h = e.u を満たす射 u:H->E が唯一つのみ存在する

もの。

Setでの例を出すと、

  • X={s,t,u,v}、Y={w,x,y,z}
  • f={(s,w), (t,x), (u,y), (v,z)}, g={(s,w), (t,x), (u,z), (v,y)}

とすると、f.e = g.eになるためには、equaliserは、fとgで同じペアになるものを選び、その入力側が出力側にくる関数になる。それに対する入力は1対1に対応付けられるものになる。つまり、

  • E={a,b}
  • e:E->X = equaliser(f,g) = {(a,s), (b,t)}

となる。

出力がf,gの共通部分になれば、f.h = g.hとなるので、たとえば、

  • H = {i,j,k}
  • h:H->X = {(i,s),(j,t),(k,t)}

をおけるが、このh = e.uとなるuが唯一つのみ存在する。それは

  • u = {(i,a),(j,b),(k,b)}

である。

  • e.u = {(a,s),(b,t)} . {(i,a),(j,b),(k,b)}

に i,j,kをいれれば、結果

  • e.u = {(i,s),(j,t),(k,t)} = h

となる。

また、このhがequaliserとすると、f.h2=g.h2となるh2 = {(i2,s),(j2,t),(k2,t),(l2,s)}において、

  • u1={(i1,i),(j2,j),(k2,k),(l2,i)}
  • u2={(i1,i),(j2,j),(k2,j),(l2,i)}
  • u3={(i1,i),(j2,k),(k2,j),(l2,i)}

などh2 = h.uとなるuが複数存在してしまう。よってこのhはequaliserにはならない。

H={i}、h:{(i,s)}でも f.h = g.hだが、やはりe.u=hとなるものとしてu:{(i,a)}が唯一存在する。こちらは、先のh2において、h2 = h.uとなるuが存在しないのでやはりequaliserにはならない。

つまり、equalizerは共通部分のX側そのもののようなものになる。

coequaliserの例

対象X,Yで、射q:Y->Q = coequaliser(f:X->Y,g:X->Y) の定義

  • q.f = q.g (つまり∀x:X, q(f(x)) = q(g(x))となる)
  • h.f = h.g を満たす任意の射 h:Y->Hについて、
    • h = u.q を満たす射 u:Q->H が唯一つのみ存在する

Setでの例を出すと、

  • X={s,t,u,v}、Y={w,x,y,z}
  • f={(s,w), (t,x), (u,y), (v,z)}, g={(s,w), (t,x), (u,z), (v,y)}

とすると、q.f = q.gになるためには、coequaliserは、fとgで同じにならないペアを選び、その出力側を単一のものに変換し、同じものはそのままにする関数になる。つまり、

  • Q = {a,b,c}
  • q:Y->Q = coequaliser(f,g) = {(s,a),(t,b),(u,c),(v,c)}

となる。

f,gの出力で違うものを単一化されてさえいれば、h.f = h.gとなるので、たとえば、

  • H = {i,j}
  • h:Y->H = {(s,i),(t,j),(u,i),(v,i)}

をおけるが、この h = u.q となるuが唯一つのみ存在する。それは

  • u = {(a,i),(b,j),(c,i)}

である。

  • u.q = {(a,i),(b,j),(c,i)} . {(s,a),(t,b),(u,c),(v,c)}

に s,t,u,vをいれれば、結果

  • e.u = {(s,i),(t,j),(u,i),(v,i)} = h

となる。

また、このhがcoequaliserとすると、h2.f=h2.gとなるh2 = {(s,i2),(t,j2),(u,j2),(v,j2)}において、h2 = u.hとなるuが存在しない。よってこのhはcoequaliserにはならない。

coequalizerは、区別できる部分は区別させてなるべく最小限に同一視させる関数のようになっている。

こういうのを商集合(quontient set)というらしい。元になる集合の要素間にある同値関係〜がある場合、同値のものを一まとめにした集合という意味のようだ。たとえば、Y={s,t,u,v}で、u=vつまり関係〜={(u,v)}があって、Y要素のうち〜関係のものを一まとめにした商集合は、Y/〜 = {s,t,[u=v]}という3要素の集合になる。

equaliser、coequaliserの理解で

Setではequaliserもcoequaliserも複数存在するが、それぞれの射のドメイン同士における射uは一対一対応になる。つまりのドメインも同形になってます。equaliserの形はひとつで、それはh=e.uとなるuがひとつある、という定義に基づくのだと思います。これはSetでの終対象である一点集合(どの一点集合から終対象である別の一点集合への射も同形射)でも見られた論法です。

集合では、関数はインプットアウトプットの集合で特徴づけるけど、同等のことを圏論では対象ではなく、こういうふうに射につながる射に対して特徴付けるような考え方をさせられるのが、難解なポイントの一つだと思います。しかし、このように射でのみ特徴づけをすることで、圏の具体的な意味とは独立して性質間の関係を扱えるようになる利点があって、それが圏論の長所になるというところでしょうか。

圏論学習では、こういうのに慣れておく必要があるけど、圏そのものでの具体例をみつけながら考えていけば何とかなりそうだったりもします。ただ、具体例を見つけるのには、その圏自体の実際の性質を知らないといけないので、それも大変ですけど。