古典論理の意味論がブール代数によって議論できるように,直観主義論理の意味論はハイティング代数によって考えることができる.ハイティング代数とは,冪で閉じている有界束であり,ブール代数もハイティング代数になる.
というわけで結構題材になるハイティング代数だが,巷でハイティング代数に関しての資料が少なかったりするので,自分のために諸々備忘録を残しておく.
ハイティング代数の定義
まずは基本的なところから。最初に poset を導入する。
- 定義. 半順序 (partial order, poset)
集合 A とそれ上の二項関係 (⊑)⊆A×A の組 (A,⊑) で以下を満たすものを、半順序と呼ぶ:
- 反射律 (reflexivity)
- 任意の x∈A について、x⊑x
- 推移律 (transitivity)
- 任意の x,y,z∈A について、x⊑y かつ y⊑z ならば、x⊑z
- 反対称律 (anti-symmetric)
- 任意の x,y∈A について、x⊑y かつ y⊑x ならば、x=y
束の定義方法は色々あるが、今回は poset ベースの束の定義を導入する。
- 定義. 束 (lattice)
半順序 (A,⊑) で以下を満たすものを、束と呼ぶ:
- 任意の x,y∈A について、上限 x∨y∈A が存在する。この時、x∨y を結び (join) と呼ぶ
- 任意の x,y∈A について、下限 x∧y∈A が存在する。この時、x∧y を交わり (meet) と呼ぶ
束は、幾つかの代数的性質が成り立つ。
- 定理. 束の性質
束 (L,⊑) について、以下が成り立つ:
- 交換律 (commutative)
- 任意の x,y∈L について、x∧y=y∧x、x∨y=y∨x
- 結合律 (associative)
- 任意の x,y,z∈L について、x∧(y∧z)=(x∧y)∧z、x∨(y∨z)=(x∨y)∨z
- 吸収律 (absorption)
- 任意の x,y∈L について、x∧(x∨y)=x∨(x∧y)=x
- 冪等律 (idempotent)
- 任意の x∈L について、x∧x=x∨x=x
証明:
交換律,結合律,冪等律はいいと思うので,吸収律だけ示しておく.といっても,こいつもほぼ自明で,x≤x∨y,x∧y≤x より,下限,上限の定義から x∧(x∨y)=x,x∨(x∧y)=x.
束の中で、空集合に対する上限、下限が存在するもの、つまり最大元、最小元が存在するものを有界束と呼ぶ。
- 定義. 有界束 (bounded lattice)
束 (L,⊑) で以下を満たすものを,有界束と呼ぶ:
- ある ⊤∈L が存在し、任意の x∈L について x≤⊤ を満たす
- ある ⊥∈L が存在し、任意の x∈L について ⊥≤x を満たす
ハイティング代数は、有界束の中で冪対象を持つものである。
- 定義. ハイティング代数 (heyting algebra)
有界束 (L,⊑) で以下を満たすものを、ハイティング代数と呼ぶ:
- 任意の x,y∈L について、{z∈L∣x∧z≤y} の上限 x→y∈L が存在する。この時、x→y を冪 (exponential) または相対擬補元 (relative pseudo-complement) と呼ぶ
証明は省略するが,冪の例は x→x=⊤,⊤→x=x,⊥→x=⊤ などがある.
ハイティング代数の性質
分配律を満たす束を分配束という.
- 定義. 分配束 (distributive lattice)
束 (L,⊑) について、以下を満たすものを分配束と呼ぶ:
- 任意の x,y,z∈L について、x∧(y∨z)=(x∧y)∨(x∧z)
- 任意の x,y,z∈L について、x∨(y∧z)=(x∨y)∧(x∨z)
なお,片方のみ成り立てば分配束になる.
- 定理. 分配束の条件
束 (L,⊑) について、以下は同値.
- (L,⊑) は分配束
- 任意の x,y,z∈L について、x∧(y∨z)=(x∧y)∨(x∧z)
- 任意の x,y,z∈L について、x∨(y∧z)=(x∨y)∧(x∨z)
証明:
1 ならば 2,1 ならば 3 は自明.2 ならば 1 は,
(x∨y)∧(x∨z)=((x∨y)∧x)∨((x∨y)∧z)=x∨(x∧z)∨(y∧z)=x∨(y∧z)
より,示せる.3 ならば 1 も対称的に証明できる.
ハイティング代数は、分配束になる.
- 定理. ハイティング代数の分配律
ハイティング代数は,分配束である.
証明:
- x∧y≤x∧(y∨z)
- x∧z≤x∧(y∨z)
より,x∧(y∨z) は x∧y,x∧z の上界になる.よって,(x∧y)∨(x∧z)≤x∧(y∨z).また,
- x∧y≤(x∧y)∨(x∧z)
- x∧z≤(x∧y)∨(x∧z)
より,
- y≤(x→(x∧y)∨(x∧z))
- z≤(x→(x∧y)∨(x∧z))
よって,x→(x∧y)∨(x∧z) は y,z の上界より y∨z≤(x→(x∧y)∨(x∧z)).ここから,
x∧(y∨z)≤x∧(x→(x∧y)∨(x∧z))≤(x∧y)∨(x∧z)
よって,x∧(y∨z)=(x∧y)∨(x∧z) より,分配束になる.
ついでにだが、通常の有界束は分配律が成り立つとは限らない。反例は以下のもの:
この時、x∨(y∧z)=x=⊤=(x∨y)∧(x∨z) になる。さて,束の元には補元が存在する場合がある.
- 定義. 補 (complement)
有界束 (L,⊑) の元 x∈L について,
- x∧y≤⊥
- ⊤≤x∨y
を満たす y∈L を x の補と呼ぶ
⊤ と ⊥ は互いに補の関係になる.なお,有界束において一般に補は一意とは限らない.例えば,上の分配律が成り立たない束において,x の補は y,z 両方になる.もちろん存在するとも限らない.これは,線形な束を思い描いてみるといいだろう.ところで,分配束において補は存在するなら一意に定まる.
- 定理. 分配束における補の一意性
有界な分配束 (L,⊑) について,
- 任意の x,y,z∈L について、x∧(y∨z)=(x∧y)∨(x∧z)
- 任意の x,y,z∈L について、x∨(y∧z)=(x∨y)∧(x∨z)
が成り立つ時,任意の x∈L についてその補は高々1つである
証明:
x∈L の補 y1∈L,y2∈L が存在する時,
y1=y1∧(y2∨x)=(y1∧y2)∨(y1∧x)=(y1∧y2)∨(y2∧x)=y2∧(y1∨x)=y2
より,y1=y2.よって,存在すれば補は一意.
ハイティング代数において補は存在するとは限らないが,ハイティング代数は分配束より存在すれば一意である.さらに,ハイティング代数においては補が存在すればその形を特定できる.
- 定義. 擬似補 (pseudo-complement)
- ハイティング代数 (H,⊑) について、その要素 x∈H に対し、x→⊥ を擬似補と言い、¬x と表記する
ハイティング代数において,補が存在すればそれは ¬x と一致する.
- 定理. 擬似補と補の一意性
ハイティング代数 (H,⊑) の元 x∈H について,その補が存在する時,それは ¬x のみである
証明:
x∈H の補 y∈H が存在する時,x∧y≤⊥ より y≤¬x である.この時,
- x∧¬x≤⊥
- ⊤≤x∨y≤x∨¬x
より,¬x は補である.さらに,ハイティング代数は分配束なので,補は ¬x のみである.
ハイティング代数ではド・モルガン則は片方のみ成り立つ.
- 定理. ド・モルガン則 (De Morgan's law)
ハイティング代数 (H,⊑) について、以下が成り立つ:
- 任意の x,y∈H について、¬x∧¬y=¬(x∨y)
証明:
(x∨y)∧¬x∧¬y=(x∧¬x∧¬y)∨(y∧¬∧¬y)=⊥∨⊥≤⊥
より,¬x∧¬y≤¬(x∨y).また,
x∧¬(x∨y)≤(x∧¬(x∨y))∨(y∧¬(x∨y))=(x∨y)∧¬(x∨y)≤⊥
より,¬(x∨y)≤¬x.対称性より ¬(x∨y)≤¬y.よって,¬(x∨y)≤¬x∧¬y より,¬x∧¬y=¬(x∨y).
ブール代数と二重否定変換
ハイティング代数のインスタンスにブール代数がある.
- 定義. ブール代数 (boolean algebra)
分配束 (L,⊑) で以下を満たすものを、ブール代数と呼ぶ:
- 任意の x∈L について、その補が存在する
- 定理. ブール代数はハイティング代数
ブール代数 (B,⊑) は,ハイティング代数である
証明:
x,y∈B について,x の補を a とする.この時,x→y=a∨y を示す.
x∧(a∨y)=(x∧a)∨(x∧y)=x∧y≤y
であり,x∧z≤y となる z∈B について,
z=z∧(a∨x)=(z∧a)∨(x∧z)≤a∨y
より,a∨y は x→y の条件を満たす.よって,任意の元について冪が存在するため,(B,⊑) はハイティング代数.
ハイティング代数がブール代数になる条件として,以下が知られている.
- 定理. ブール代数の同値条件
ハイティング代数 (H,⊑) について,以下は同値
- H はブール代数
- 任意の x∈H について,x∨¬x=⊤
- 任意の x∈H について,¬¬x=x
証明:
x∈H について x∧¬x≤⊥ であること,ブール代数がハイティング代数であることから,1 と 2 の同値性はいいと思う.
2 から 3 は,
¬¬x=¬¬x∧(x∨¬x)=(¬¬x∧x)∨(¬¬x∧¬x)=¬¬x∧x
=(¬¬x∧x)∨(x∧¬x)=(¬¬x∨¬x)∧x=x
より示せる.3 から 2 は,ハイティング代数で適用できるド・モルガン則を使用して,
x∨¬x=¬¬(x∨¬x)=¬(¬x∧¬¬x)=¬⊥=⊤
より示せる.
ブール代数では,2つめのド・モルガン則も示せる.
- 定理. ド・モルガン則 (De Morgan's law)
ブール代数 (B,⊑) について、以下が成り立つ:
- 任意の x,y∈H について、¬x∨¬y=¬(x∧y)
証明:
ブール代数では二重否定の除去ができることから,ハイティング代数上で成り立つド・モルガン則を使用して,
¬x∨¬y=¬¬(¬x∨¬y)=¬(¬¬x∧¬¬y)=¬(x∧y)
のように示せる.
さて,ハイティング代数からブール代数への変換方法として,二重否定変換というものが知られている.これは,名前の通り全ての元に二重否定をかますような変換だ.それを示すため,まず準備として補題を用意する.
- 補題.
ハイティング代数 (H,⊑) について,以下が成り立つ:
- 任意の x∈H について,x≤¬¬x
- 任意の x,y∈H について,x≤y ならば ¬y≤¬x
証明:
¬x∧x≤⊥ より,x≤¬¬x.また,x≤y の時,
x∧¬y≤y∧¬y≤⊥
より,¬y≤¬x.
- 補題.
ハイティング代数 (H,⊑) について,以下が成り立つ:
- 任意の x∈H について,¬¬¬x=¬x
- 任意の x,y∈H について,¬¬(x∧y)=¬¬x∧¬¬y
証明:
前の補題から,¬x≤¬¬¬x.また,¬x≤¬¬x から ¬¬¬x≤¬x.よって,¬¬¬x=¬x.
また,x∧y≤x,x∧y≤y から,¬¬(x∧y)≤¬¬x,¬¬(x∧y)≤¬¬y より,¬¬(x∧y)≤¬¬x∧¬¬y.さて,後 ¬¬x∧¬¬y≤¬¬(x∧y) を示せれば良い.これを示すには,¬(x∧y)∧¬¬x∧¬¬y≤⊥ を示せれば良い.
ところで,¬(x∧y)∧x∧y≤⊥ より,
¬(x∧y)∧x≤¬y=¬¬¬y
であるため,¬(x∧y)∧x∧¬¬y≤⊥ である.同様に x についても同じ操作から,¬(x∧y)∧¬¬x∧¬¬y≤⊥ となる.よって,¬¬(x∧y)=¬¬x∧¬¬y.
これより,二重否定変換はハイティング代数上の準同型になり,二重否定の除去を付加できる.これにより,ハイティング代数からブール代数を生成できる.
- 定理. 二重否定変換 (double-negation translation)
ハイティング代数 (H,⊑) について,H¬¬=({¬¬x∣x∈H},⊑) はブール代数である
証明:
前の補題から,元の H の ∧ は H¬¬ でも閉じている.また,x≤¬¬x より,冪も保存される.よって,H¬¬ はハイティング代数.さらに,¬¬(¬¬x)=¬¬x であり,H¬¬ はブール代数になる.
圏論的視点
今までは通常の束論の議論でハイティング代数を取り扱ってきたが,圏論的な議論もしておく.まず,半順序での最大下界,最小上界は,poset での直積,直和になる.これは,定義を比べてみれば分かると思う.そして,最小元,最大元は始対象,終対象に相当する.よって,有界束とは,finitely complete かつ cocomplete な poset のことになる .
- 定義. 有界束
poset C が有界束とは,以下を満たすこと
- 有限積を持つ (finitely complete)
- 有限余積を持つ (finitely cocomplete)
ハイティング代数は,有界束のなかで CCC (Cartesian Closed Category) になるものである.すなわち,冪も持つような poset になる.
- 定義. ハイティング代数
有界束 C がハイティング代数とは,以下を満たすこと
冪の定義も照らし合わせてみるとそのままだが,一応確認しておくと,
が冪対象の定義で,この時 zy∧y=zy×y≤z かつ x×y=x∧y≤z となる x について x≤zy となる.冪の随伴関係 C(X×Y,Z)≃C(X,ZY) がそのままで,つまりハイティング代数とは,−∧Y が右随伴を持つような有界束のことになる.ついでに,CCC で finite coproduct を持つような圏を BCCC (BiCartesian Closed Category) と言うらしい.ハイティング代数は,この言葉を使うと poset で BCCC になるものと言える.
さて,左随伴の有用な性質として,余極限を保存すると言うものがある.つまり,ハイティング代数では x∧− は余極限を保存する.ここから直ちに分配束であることが導ける.
- 定理.
ハイティング代数は,分配束である.
証明:
x∧− は余極限を保存するため,
x∧y⋁y=y⋁x∧y
である.
ところで,¬ はハイティング代数 H 上の反変関手 ¬:H→Hop になる.逆にも ¬:Hop→H を張れて,こいつらは随伴になる.一般に,H の対象 X について,X−:H→Hop は左随伴になる.
- 定理.
ハイティング代数 H,X∈∣H∣ について,X−:H→Hop は右随伴を持つ.
証明:
Hop(XY,Z)≃H(Z,XY)≃H(Y×Z,X)≃H(Y,XZ)
より,X−:Hop→H が右随伴になり,X−⊣X−:H→Hop になる.
ところで,¬:H→Hop が左随伴を持つ場合がある.¬:Hop→H がその左随伴になる H がブール代数である.
- 定義. ブール代数
ハイティング代数 H がブール代数とは,以下を満たすこと:
- ¬⊣¬:Hop→H
この定義がブール代数の条件に合うことを確認する前に少々寄り道する.さて,随伴同値 (adjoint equivalence) と言う条件がある.これは,随伴による単子 (unit),余単子 (counit) が自然同型になることである.
- 定義. 随伴同値
- 随伴 F⊣G について,その単子,余単子が自然同型である時,F⊣G を随伴同値という.
随伴同値の場合,F⊣G かつ G⊣F になる.
- 定理.
随伴 F⊣G が随伴同値ならば,G⊣F である
証明:
unit η:1⇒G∘F,counit ϵ:F∘G⇒1 が自然同型である時,それぞれの逆射 ϵ−1:1⇒F∘G,eta−1:G∘F⇒1 が存在する.この時,
- GGϵ−1GFGηG−1G
- FϵF−1FGFFη−1F
はそれぞれ
- FFηFGFϵFF
- GηGGFGGϵG
の逆射になる.よって恒等射になるため,それぞれが unit / counit になる随伴 G⊣F が作れる.
ところで,¬∘¬ は恒等関手,つまり二重否定の除去が成り立つとすると,この時 ¬⊣¬:H→Hop の unit は自然同型になる.また,unit が自然同型になるならば二重否定の除去ができる.つまりブール代数とは,ハイティング代数で ¬ が随伴同値になるものである .
- 定理. ブール代数の条件
ハイティング代数 H について,以下は同値
- H はブール代数
- ¬∘¬:H→H は恒等関手
- ¬⊣¬:H→Hop は随伴同値
証明:
3 から 1 はよい.1 から 2 は,
- H(Y,¬X)≃Hop(¬X,Y)≃H(X,¬Y)
- H(¬X,Y)≃Hop(X,¬Y)≃H(¬Y,X)
より,¬X1¬X に対応する射
- X≤¬¬X
- ¬¬X≤X
が存在する.よって,¬¬X=X であることより,示せる.2 から 3 は,unit / counit が恒等関手から恒等関手への口頭変換になることから自明.
ところで,ブール代数に限らずハイティング代数では ¬⊣¬ だった.随伴からはモナドが作れるので,¬¬ はモナドになる.この時,¬¬(¬¬x)≤¬¬x がモナドの自然変換から作れるため,¬¬ により作られる subcategory がハイティング代数であれば,¬¬(¬¬x)=¬¬x になる.つまり,¬¬ により作られる subcategory はブール代数になる.¬¬ により作られる subcategory がハイティング代数であることは,finite product / finite coproduct / implication を保存することを地道に証明する方法しか知らないので割愛する.誰か他の方法知ってたら教えて欲しい .
まとめ
てことで,ハイティング代数は BCCC になる poset で,ブール代数は 0− が随伴同値になるハイティング代数だよ,何か問題でも?
なお,X− が左随伴になるって話から,(x∨y)⇒z=(x⇒z)∧(y⇒z) が直ちに示せたり ,随伴 ¬⊣¬ の同値性 H(Y,¬X)≃H(X,¬Y) に X=¬Z,Y=Z すれば Z≤¬¬Z が直ちに示せたりして便利.まあ,その証明が相手に通じるかは置いといて.てことで,今回は以上.