--- 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 の圏論的定式化になっている。