generated at
通常の0引数の型にbottom(⊥)を加えた集合

通常の型 Int Bool Bottom型を追加した集合
一般に、集合S\botを追加した集合をS_\botと表記する
だから、\mathrm{Int}_\bot\mathrm{Bool}_\botになる

例えば、\mathrm{Bool}の値は、 true false だが、
\mathrm{Bool}_\botの値は、 true false である
Haskellの場合は、通常の型に既にbottomは含まれている
それが undefined という値
Bool 型は3つの値、 true false が属している
同様にvoid型 () も2つの値、 () , が属している
(inhabitantの話と若干ズレるのでややこしいなmrsekut)
inhabitantの話をしている時は、普通 を無視すると思う


この集合は
平坦領域である
つまり記号のイメージとしての\sqsubsetのようなものが、\botとの関係にしかないmrsekut
\bot \sqsubset a
a=bにしかならない
\bot以外が並列にある感じ
自然数の通常の大小関係\leも定義されてはいるが、\sqsubseteqとは無関係である
意味近似順序の観点で見れば、12の定義のされ具合は同じである
そう書くと、1\sqsubseteq2と書けてしまいそうなので、言い方がちょっと良くないなmrsekut




例えば、 Int \botを加えた集合\mathrm{Int}_\bot意味近似順序(\sqsubseteq)で順序付けした時
ハッセ図式は、以下のようになる
図を見れば明らかだが、
以下は成り立つ
\bot \sqsubseteq 1
\bot \sqsubseteq 2
1 \sqsubseteq 1
以下は成り立たない
1 \sqsubseteq 2
2 \sqsubseteq 1



Just Either みたいに引数を持つ型の場合は? ref
正格か非正格かで、平坦領域になるかどうか変わる
正格なら平坦領域になる
非正格なら平坦にはならない





参考