日記 (2021 年 10 月 9 日)
7 月 7 日では、 レンズの van Laarhoven エンコーディングの圏論的定式化を行い、 それがゲッターとセッターのタプルという素朴なレンズと等価であることを示した。
今回は、 自己プロ関手を用いたレンズの別のエンコーディング方法を圏論的に定式化し、 これも同じく素朴なレンズと等価であることを示す。
なお、 今回の議論の流れは 7 月 7 日の議論とパラレルになっている。
以下に概念の対応表を掲げておくので、 比較しながら読むと理解が深まるかもしれない。
前回 | 今回 |
自己関手 | 自己プロ関手 |
強度 | Tambara 構造 |
自己強関手 | Tambara 加群 |
強自然変換 | Tambara 加群の射 |
van Laarhoven レンズ | プロ関手レンズ |
まずはプロ関手について軽く復習しておこう。
定義 2.1.
圏 に対し、 関手 P:∘×→Set のことを自己プロ関手 (endoprofunctor) といい、 P:⇸ で表す。
自己プロ関手の間の射は通常の意味での自然変換とする。
これにより、 圏 上の自己プロ関手とその間の自然変換は圏を成すので、 以降それを EndProf() で書くことにする。
圏 上の通常の自己関手 F:→ があると、 これにより自己プロ関手
iF: ∘× ⟶ Set (X,X) ⟼ Hom(X,FX)
が誘導される。
さらに、 この操作は関手
i: End() ⟶ EndProf() F ⟼ iF
を定める。
この操作により、 自己関手を自己プロ関手と見なすことができる。
前回は、 素朴なレンズとの 1 対 1 対応を作るため、 単なる自己関手ではなく自己関手に強度という追加の構造を定めたものを考えた。
自己プロ関手にもこれに対応する追加の構造があり、 Tambara 構造と呼ばれている。
定義 2.2.
有限積をもつ圏 上の自己プロ関手 P:⇸ をとる。
対象 M,X,X に対し、 全ての変数に関して自然な射
ξMXX:P(X,X)⟶P(M×X,M×X)
が定まっていて、 任意の対象 M,N,X,X に対し、 図式
P(X,X)P((M×N)×X,(M×N)×X)P(N×X,N×X)P(M×(N×X),M×(N×X))ξM×N,X,XξNXXξM,N×X,N×X P(X,X)P(1×X,1×X)P(X,X)ξ1XX
が全て可換であるとする。
なお、 ラベルのない射は標準的な同型射を表している。
このとき、 ξ を P に対する Tambara 構造 (— structure) といい、 組 (P,ξ) を Tambara 加群 (— module) という。
Tambara 加群の射は、 次のような Tambara 構造と適合する自然変換である。
定義 2.3.
有限積をもつ圏 上の Tambara 加群 (P,ξ),(Q,ζ):⇸ および自然変換 θ:P⇒Q をとる。
任意の対象 M,X,X に対し、
P(X,X)Q(X,X)P(M×X,M×X)Q(M×X,M×X)θXXθM×X,M×XξMXXζMXX
が可換であるとき、 θ を Tambara 加群の射 (morphism of — modules) といい、 θ:(P,ξ)⇒(Q,ζ) で表す。
定義から Tambara 加群の射は合成に関して閉じているので、 Tambara 加群とその射は圏を成す。
定義 2.4.
有限積をもつ圏 をとる。
圏 Tamb() を、
- Tamb() の対象は、 上の Tambara 加群 (P,ξ) の全体とする。
- Tamb() の 2 つの対象 (P,ξ),(Q,ζ) の間の射は、 Tambara 加群の射 θ:(P,ξ)⇒(Q,ζ) の全体とする。
によって定義する。
さて、 これにより自己関手に追加の構造を定めた自己強関手と、 自己プロ関手に追加の構造を定めた Tambara 加群が定義できた。
ここで、 自己関手からは自己プロ関手が標準的に得られることを思い出そう。
この操作は、 自己強関手から Tambara 加群を得る操作に拡張できる。
命題 2.5.
関手 i:End()→EndProf() は関手 i:StrEnd()→Tamb() に拡張される。
すなわち、
StrEnd()Tamb()End()EndProf()ii
を可換にする上部の水平な破線の関手が存在する。
ここで、 垂直な矢印は忘却関手である。
証明.
自己関手 F:→ 上の強度 σ から、 自己プロ関手 iF:⇸ 上の Tambara 構造 iσ を構成する。
対象 M,X,X に対し、
(iσ)MXX:=❲Hom(X,FX)Hom(M×X,M×FX)Hom(M×X,F(M×X))M×-σMX∘-❲
と定めると、 これは全ての変数に関して自然である。
さらに、 σ が強度であることから、 今定義した iσ が Tambara 構造の公理を満たすことが従う。
この操作によって関手
i: StrEnd() ⟶ Tamb() (F,σ) ⟼ (iF,iσ)
が定まるが、 これが求めていたものである。
定義 2.6.
有限積をもつ圏 をとる。
対象 A,A に対し、
-(A,A): Tamb() ⟶ Set (P,ξ) ⟼ P(A,A)
とおく。
このとき、 対象 S,S,A,A に対し、 自然変換 φ:-(A,A)⇒-(S,S) をプロ関手レンズ (profunctor lens) という。
定義 2.7.
有限積をもつ圏 をとる。
圏 PLens() を、
- PLens() の対象は、 の 2 つの対象の組 (S,S) の全体とする。
- PLens() の 2 つの対象 (S,S),(A,A) の間の射は、 プロ関手レンズ φ:-(A,A)⇒-(S,S) の全体とする。
すなわち、
HomPLens()((S,S),(A,A))=Hom[Tamb(),Set](-(A,A),-(S,S))
である。
- PLens() の射の合成は、 通常の自然変換の合成を逆向きに行うものとする。
によって定義する。
定理 1.9 により、 カルテシアン閉圏の対象 A,A に対して、 関手 Hom(A,-A):StrEnd()→Set は表現可能である。
この表現対象となる自己強関手を (EAA,ρAA) で表そう。
ここで、 EAA は、
EAA: ⟶ X ⟼ (A⇀X)×A
で与えられる関手であった。
実は、 関手 -(A,A):Tamb()→Set は、 この自己強関手が誘導する Tambara 加群 (iEAA,iρAA) によって表現可能である。
定理 2.8.
カルテシアン閉圏 をとる。
対象 A,A に対し、 関手 -(A,A):Tamb()→Set は表現可能であり、 その表現対象は (iEAA,iρAA) である。
証明.
この (iEAA,iρAA) が実際に -(A,A):Tamb()→Set の表現対象であること、 すなわち
HomTamb()((iEAA,iρAA),-)≅-(A,A)♡
が成り立つことを以下に示す。
Tambara 加群 (P,ξ) を固定する。
任意に Tambara 加群の射 θ:(iEAA,iρAA)⇒(P,ξ) をとると、 その成分として写像
θAA:Hom(A,(A⇀A)×A)⟶P(A,A)
が定まっている。
したがって、 idA:A→A の転置を jdA:1→A⇀A と書くことにして、
fAA:=❲A1×A(A⇀A)×AjdA×id❲
とおけば、 この像として P(A,A) の元 Φθ:=θAAfAA が得られる。
この操作は、 写像
Φ: HomTamb()((iEAA,iρAA),(P,ξ)) ⟶ P(A,A) θ ⟼ Φθ
を定める。
この逆向きの写像を作るためには、 P(A,A) の元 x および対象 X,X に対し、
(Ψx)XX:(iEAA)(X,X)⟶P(X,X)
を定めたい。
i と EAA の定義により、 これは
(Ψx)XX:Hom(X,(A⇀X)×A)⟶P(X,X)
と表せる。
この左辺に属する射 f:X→(A⇀X)×A は、 写像
hf:=❲P(A,A)P((A⇀X)×A,(A⇀X)×A)P(X,X)ξA⇀X,A,AP(f,evAX)❲
を定めるので、 この写像による x の像として P(X,X) の元 hfx が得られる。
これを改めて (Ψx)XXf とおくことで、 写像
(Ψx)XX:Hom(X,(A⇀X)×A)⟶P(X,X)
を定めることができる。
これは X と X に関して自然であることが確かめられるので、 自然変換 Ψx:iEAA⇒P が得られる。
さらに Tambra 加群の射 Ψx:(iEAA,iρAA)⇒(P,ξ) にもなっていることが示せる。
これにより、 写像
Ψ: P(A,A) ⟶ HomTamb()((iEAA,iρAA),(P,ξ)) x ⟼ Ψx
が得られる。
Φ と Ψ は互いに逆になっており、 さらに自然でもあるので、 これより式 ♡ が得られた。
定理 2.9.
カルテシアン閉圏 をとる。
対象 S,S,A,A に対し、 全単射
HomPLens()((S,S),(A,A))≅HomNLens()((S,S),(A,A))
が存在する。
証明.
定理 2.8 と Yoneda の補題により、
HomPLens()((S,S),(A,A)) = Hom[Tamb(),Set](-(A,A),-(S,S)) ≅ Hom[Tamb(),Set](Hom((iEAA,iρAA),-),-(S,S)) ≅ (iEAA)(S,S) ≅ Hom(S,EAAS)) ≅ Hom(S,(A⇀S)×A) ≅ Hom(S,A⇀S)×Hom(S,A) ≅ Hom(S×A,S)×Hom(S,A) = HomNLens()((S,S),(A,A))
が成り立つので、 示された。
定理 2.10.
カルテシアン閉圏 をとる。
圏同型
PLens()≅LLens()≅NLens()
が成立する。
証明.
圏同型 LLens()≅NLens() はすでに定理 1.11 で示されている。
したがって、 圏同型 PLens()≅NLens() を示せば良いが、 そのためには定理 2.9 の全単射が合成を保つことを示せば良い。
詳細は省略する。
以上により、 素朴レンズ, van Laarhoven レンズ, プロ関手レンズという 3 通りのレンズの表現が全て等価であることが示せた。
次回は、 コエンドを用いた 4 つ目のレンズの表現方法を紹介する。
参考文献
- B. Clarke et al (2020) 「Profunctor optics, a categorical update」 arXiv:2001.07488
- M. Riley (2018) 「Categories of optics」 arXiv:1809.00738