---
tags: TrRun3
id: Arrg-A27_mines.md
---
# 檜山トレラン3 A27 小ネタ: 派閥と地雷、クラッシュ
$\newcommand{\R}{ {\bf R} }
\newcommand{\N}{ {\bf N} }
\newcommand{\B}{ {\bf B} }
\newcommand{\Rnn}{ {\bf R}_{\ge 0} }
\newcommand{\Sy}[1]{ \langle #1 \rangle } % symbole
\newcommand{\LCL}{ (\![ }
\newcommand{\LCR}{ ]\!) }
\newcommand{\hyp}{ \text{-} }
\require{color}%
\newcommand{\Keyword}[1]{ \textcolor{green}{ \bf \text{#1} } }%
\newcommand{\For}{\Keyword{For }}%
\newcommand{\When}{\Keyword{When }}%
\newcommand{\WeDefine}{\Keyword{WeDefine }}%
\newcommand{\Kl}{\mathrm{Kl} }%
%$
<!--
$\newcommand{\conc}{\mathop {\#}}
\newcommand{\BL}{ \{\![ }
\newcommand{\BR}{ ]\!\} }
\newcommand{\Rnn}{ {\bf R}_{\ge 0}}
\newcommand{\In}{\text{ in }}%
\newcommand{\WeWillDefine}{\Keyword{WeWillDefine }}%
\newcommand{\OmitDefinition}{\Keyword{OmitDefinition }}%
\newcommand{\Where}{\Keyword{Where }}%
\newcommand{\On}{\text{ on } }
%$
-->
<!--
$
\newcommand{\When}{\Keyword{When } }
\newcommand{\Imp}{ \Rightarrow }%
\newcommand{\Let}{\Keyword{Let }}%
\newcommand{\WeAssert}{\Keyword{WeAssert }}%
\newcommand{\Justification}{\Keyword{Justification }}%
\newcommand{\Then}{\Keyword{Then }}%
\newcommand{\cat}[1]{\mathcal{#1}}%
\newcommand{\WeUse}{\Keyword{WeUse }}%
\newcommand{\WeAbuse}{\Keyword{WeAbuse }}%
\newcommand{\Exn}[1]{ [\!( #1 )\!] }
\newcommand{\Iff}{\Leftrightarrow}
\newcommand{\Rnni}{ {\bf R}_{\ge 0}^{+\infty}}
\newcommand{\id}{ \mathrm{id} } % id
\newcommand{\pto}{ \supseteq\!\to }
%$
-->
☆小ネタでもないかも知れないが、繰り返しネタではあるので時間はかけない。
☆これは、「なんで、混乱や停滞が生まれたのだろう?」と檜山が考えてみた結果。
☆より広い視点、とらわれない視点を手に入れるには、異端の事例も知っておいたほうがいい。
- 参考:[B28 線形結合モナド ミニマム](https://hackmd.io/@m-hiyama/rkHoP2C7K) 短くまとめることが可能。
## 派閥の比較
線形結合モナド $LinComb[S]$ で、$S = \B, \N, \Rnn, \R$ の4つのケースを主に扱っているが、2つの“派閥”に分けて考えるのがよさそう。派閥ごとの用語法を対応表にしてみると、やはり微妙な“文化的違い”がある。
| $\B, \N$ | $\Rnn, \R$ | 一般の $S$ |
|-------------|-------------|-------|
| コレクション派 | ベクトル派 | |
| 全体集合 | (生成集合) | $X$ |
| アトミックデータ | (?) | $x\in X$ |
| シングルトンコレクション | {基底 \\| 基本}ベクトル | $\LCL x \LCR = \LCL 1\Sy{x} \LCR \in LinComb[S](X)$ |
| コレクション{データ}? | ベクトル | $v \in LinComb[S](X)$ |
| 空コレクション | ゼロベクトル | $0 = \LCL \LCR \in LinComb[S](X)$
| 非決定性写像 | (?) | $f:X \to LinComb[S](Y)$ |
| (?) | 線形写像 | $f^\#:LinComb[S](X) \to LinComb[S](Y)$ |
気付くこと:
1. コレクション派では、アトミックデータ(全体集合の要素)とシングルトンコレクション(ただ1つの要素からなるコレクション)を区別しているが、ベクトル派では区別してない(できてない)ようだ。おそらく、==囲み記号を書かない習慣==からだろう。
2. ベクトル派では、$X$ と $\eta(X) = Im(\eta) \subseteq LinComb[S](X)$ の区別ができてないので、「基底」や「生成集合」がどちらを意味するか曖昧。この曖昧さも==囲み記号を書かない習慣==からだろう。
3. 言葉の運用としては、「非決定性写像=線形写像」ではないようだ。表にズレがある。
4. ベクトル派では、クライスリ射とその線形拡張は区別できてないだろう。クライスリ射も線形拡張も==行列で表示する習慣==からだろう。
5. コレクション派では、クライスリ射に注目していて、対応する線形拡張はあまり考えないようだ。
## ベクトル派の習慣
どちらかとういうと、ベクトル派の習慣が曖昧さ・不正確さを助長している。
囲み記号を付けない習慣から:
1. $x\in X$ と $\LCL x \LCR \in LinComb[S](X)$ が区別できなくなっている。
2. それに伴い、$X$ と $\eta(X) \subseteq LinComb[S](X)$ の区別もできなくなっている。
3. そもその、モナドの単位 $\eta:X \to LinComb[S](X)$ を認識できてない。
4. 入れ子が書けないので、$LinComb[S](LinComb[S](X))$ の要素を表現できない。
行列表示は便利だが、弊害として:
1. クライスリ射 $f:X \to LinComb[S](Y)$ と、その線形拡張 $f^\#:LinComb[S](X) \to LinComb[S](Y)$ の区別ができない。
2. その結果、線形拡張(モナドの拡張)$ext = (\hyp)^\# : Map(X, LinComb[S](Y)) \to Map(LinComb[S](X), LinComb[S](Y) )$ を認識できない。
ベクトル派の習慣の弊害をまとめると:
1. モナドの単位 $\eta$ が認識しにくくなる。
2. モナドのコンストラクタの繰り返し適用(入れ子)をうまく記述できない。
3. クライスリ射とその拡張を区別できないため、モナドの拡張が認識しにくくなる。
他に、==区切り記号と演算記号を区別しない習慣==もある(コレクション派では、ゲンツェン以外は区別している)。これが「ニセの和」としてけっこう深刻な混乱を生んだ([B18 “ニセの演算/ホントの演算”事件 まとめ](https://hackmd.io/@m-hiyama/By2d3k5lt) 参照)。
どうやら、モナドの学習にはベクトル派の習慣は==問題だらけ==だったようだ。
## 自分で地雷を見つける
数学の用語法・記法が==問題だらけ==だったとしても、修正は出来ないので、そのまま使われ続ける。この状態を、「**地雷原を歩くが如き**」と表現した。
問題点=地雷の発見は慣れれば可能なことで、既存の用語法・記法によらないで概念そのものを形式的に把握するように努める -- **上の表の右の欄を見よ!** 形式的に定義された概念と、既存の呼び名・書き方にズレや過不足があれば、それは問題点=地雷になりうる。
ただし、気付いた人からみれば問題点=地雷は==問題ではない==。避けて通ればいいだけだから。気付かない人にとっては==危険物==となる -- 混乱や停滞、心理的苦痛を生み出す。
## オマケ:クラッシュモナド
集合圏上のモナドで、コレクション派ともベクトル派とも離れた、異端のモナドを紹介する。
$\quad
Crush = (Crush, \eta, (-)^\#)/{\bf Set}$
クラッシュモナドのモットーは:
- **対象(集合)を潰す。**
- **単位で潰す。**
- **拡張で潰す。**
<!--
https://commons.wikimedia.org/wiki/File:Crushed_Chocolatemilk_can.jpg
-->
![Crushed](https://www.chimaira.org/img-sem/450px-Crushed_Chocolatemilk_can.jpg)
以下に定義する。${\bf 1} = \{*\}$ は特定された単元集合〈distinguished singleton set〉、${\bf 0} = \emptyset$ は空集合。
$\For X \in |{\bf Set}|\\
\When X = {\bf 0}\\
\quad \WeDefine Crush(X) := {\bf 0}\\
\When X \ne {\bf 0}\\
\quad \WeDefine Crush(X) := {\bf 1}$
モナド単位 $\eta = \eta_X:X \to Crush(X)$ は一意的に決まってしまう。
拡張は、
$\quad (\hyp)^\# = ext_{X, Y} : Map(X, Crush(Y)) \to Map(Crush(X), Crush(Y))$
集合 $X, Y$ が<s>何であっても</s> ==←間違い== $X \ne {\bf 0} \land Y = {\bf 0}$ でない限り $Map(Crush(X), Crush(Y))$ は単元集合で、拡張も一意的に決まってしまう。
モナド法則は、
$\quad (f;g^\#)^\# = f^\#;g^\#\\
\quad \eta;f^\# = f\\
\quad {\eta_X}^\# = \mathrm{id}_{Crush(X)}$
だが、これは自明に近い。
==演習:== (1) 次の表の空欄を、適切な言葉で埋めよ。
| コレクション派 | クラッシュ派 | 一般論 |
|-------------|-------------|-------|
| 全体集合 | | $X$ |
| アトミックデータ | | $x\in X$ |
| シングルトンコレクション | | $\eta(x) \in Crush(X)$ |
| コレクション{データ}? | | $v \in Crush(X)$ |
| 非決定性写像 | | $f:X \to Crush(Y)$ |
| (線形写像) | | $f^\#:Crush(X) \to Crush(Y)$ |
==解答例:== どう埋めようと**正解!**
クラッシュ派では、$X$ と $\eta(X) \subseteq Crush(X)$ を区別しないなんてありえない。
==演習:== (2) クラッシュモナドのクライスリ圏をできるだけ具体的に記述せよ。
==解答例:== $\Kl(Crush)$ の対象類 $|\Kl(Crush)|$ はすべての集合を含む。が、射はえらく少ない。各自確認せよ。
クラッシュモナドは単なるオモシロ事例ではない、proof irrelevance の圏論的定式化になっている。