---
tags: TrRun3
id: Arrg-B16_fullNotation.md
---
# 檜山トレラン3 B16 完全記法: レッドヘリング対処法
$\require{color}%
\newcommand{\hyp}{\text{-}}
\newcommand{\BL}{ \{\![ }
\newcommand{\BR}{ ]\!\} }
\newcommand{\LCL}{ (\![ }
\newcommand{\LCR}{ ]\!) }
\newcommand{\B}{ {\bf B} }
\newcommand{\N}{ {\bf N} }
\newcommand{\R}{ {\bf R} }
\newcommand{\Rnn}{ {\bf R}_{\ge 0}}
\newcommand{\Rnni}{ {\bf R}_{\ge 0}^{+\infty}}
\newcommand{\Sy}[1]{ \langle #1 \rangle } % symbole
\newcommand{\id}{ \mathrm{id} } % id
%$
## 悩んでないで、完全記法で書いてみ!
とにかく、**人は記法に惑わされ騙される!** 騙しのテクニックは決まっていて:
1. 書くべきことを省略する。
2. 省略しないまでも、極端に短く(多くの場合は1文字で)書く。
3. 同じ語・記号をオーバーロードする。
4. 本来は区別すべきものを同一視する。
これらをレッドヘリングと呼んだのだった([A04 何がレッドヘリングなのか](https://hackmd.io/@m-hiyama/Hy8UIODJY))。こんなことに騙されるのはバカバカしい。人生を無駄にしている。安易に騙されないようにしよう。
「省略しない、短か過ぎない、オーバーロードしない、同一視しない」書き方を<strong style="color:crimson">完全記法</strong>と呼ぶことにして、騙されない方法は:
- **完全記法で書いてみた後で、通常の記法を使う。**
線形結合の完全記法の構文(詳細は [A07 予定外:異世界でリラーン講座](https://hackmd.io/@m-hiyama/ByJOpRn1Y) 参照):
|係数半環 | 囲み記号 | 区切り記号 | 演算記号 | データ(の呼び名)|
|---------|----------|-----------|---------|------------|
| $\B$ | $\{\:\}$ | $,$ | $\cup$ | 有限集合 |
| $\N$ | $\BL\:\BR$ | $,$ または $+$ | $\oplus$ | バッグ |
| $\R$ または $\Rnn$ | $\LCL\:\LCR$ | $,$ または $+$ |$\oplus$ | ベクトル |
完全記法で書いた演算と簡約〈reduction〉の例
$\quad \{1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}\}\cup \{1\Sy{c}, 1\Sy{a}\} \\
\qquad \downarrow\text{ set-union operation } \\=
\{1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}, 1\Sy{c}, 1\Sy{a}\} \\
\qquad \downarrow\text{ set reduction } \\=
\{1\Sy{a}, 1\Sy{c} \}\\
\:\\
\quad \BL 1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}\BR \oplus \BL 1\Sy{c}, 1\Sy{a}\BR \\
\qquad \downarrow\text{ bag-union operation } \\=
\BL 1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}, 1\Sy{c}, 1\Sy{a}\BR \\
\qquad \downarrow\text{ bag reduction } \\=
\BL 3\Sy{a}, 2\Sy{c} \BR\\
\:\\
\quad \LCL 1\Sy{a} + 0\Sy{b} + 1\Sy{a} + 1\Sy{c}\LCR \oplus \LCL 1\Sy{c} + 1\Sy{a}\LCR \\
\qquad \downarrow\text{ vector-sum operation } \\=
\LCL 1\Sy{a} + 0\Sy{b} + 1\Sy{a} + 1\Sy{c} + 1\Sy{c} + 1\Sy{a}\LCR \\
\qquad \downarrow\text{ vector reduction } \\=
\LCL 3\Sy{a} + 2\Sy{c} \LCR$
すごく面倒でしょ、書きたくないでしょ、だから省略・短縮・オーバーロード・同一視したくなるのは人情だし、世間では盛大に省略・短縮・オーバーロード・同一視が使われてる。**だーが**、事情も分からずに闇雲に省略・短縮・オーバーロード・同一視したら意味不明になるのは当然。
横着する前に、慣れるまででいいから、**完全記法で書いてみようよ**。結局は、横着しないほうが理解が早いから。もちろん、慣れたら横着記法でもOK。いずれは横着記法の使い手になるだろう(それが良いか悪いかワカランが)。
## その他の例
完全記法で書いた入れ子データ〈nested data〉の例
$\quad \{ \{1\Sy{a}, 1\Sy{b}\}, \{ 1\Sy{a}\} \}
\:\leftarrow \text{ nested set in }FinPow(FinPow(\{a, b, c\}) )\\
\quad \BL \BL 1\Sy{a}, 1\Sy{b}\BR, \BL 1\Sy{a}\BR \BR
\:\leftarrow \text{ nested bag in }Bag(Bag(\{a, b, c\}) )\\
\quad \LCL \LCL 1\Sy{a} + 1\Sy{b}\LCR + \LCL 1\Sy{a}\LCR \LCR
\:\leftarrow \text{ nested vector in }FreeVect(FreeVect(\{a, b, c\}) )$
<div id="my-mistake">
==追記:==
<div style="margin-left:3em">
オッ、あっ、アレッ。また無意識に横着記法していた。ほんとに完全記法で入れ子データを書くなら:
$\quad \{ 1\Sy{\{1\Sy{a}, 1\Sy{b}\}}, 1\Sy{\{ 1\Sy{a}\}} \}\\
\quad \BL 1\Sy{\BL 1\Sy{a}, 1\Sy{b}\BR}, 1\Sy{\BL 1\Sy{a}\BR} \BR \\
\quad \LCL 1\Sy{\LCL 1\Sy{a} + 1\Sy{b}\LCR} + 1\Sy{\LCL 1\Sy{a}\LCR} \LCR$
シンボルを山形括弧で識別して、係数 1 も省略しないならこうなる。あーー、めんどくせー。
</div>
</div>
ニセの和/ニセのスカラー倍とホントの和/ホントのスカラー倍が置き換え可能なことが、ニセ・ホントを区別しない横着記法を正当化しているし、一方で混乱を助長している。ニセのスカラー倍を併置で書いていたので、ホントのスカラー倍を $\star$ で書くとして:
$\quad \{1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}\} \\=
\{1\Sy{a}\}\cup \{0\Sy{b}\}\cup \{1\Sy{a}\}\cup \{1\Sy{c}\} \\=
1\star \{1\Sy{a}\}\cup 0\star\{1\Sy{b}\}\cup 1\star\{1\Sy{a}\}\cup 1\star\{1\Sy{c}\} \\
\:\\
\quad \BL 1\Sy{a}, 0\Sy{b}, 1\Sy{a}, 1\Sy{c}\BR \\=
\BL 1\Sy{a}\BR \oplus \BL 0\Sy{b}\BR \oplus \BL 1\Sy{a}\BR \oplus \BL 1\Sy{c}\BR \\=
1\star \BL 1\Sy{a}\BR \oplus 0\star \BL 1\Sy{b}\BR \oplus 1\star \BL 1\Sy{a}\BR \oplus 1\star \BL 1\Sy{c}\BR\\
\:\\
\quad \BL 3\Sy{a}, 2\Sy{c} \BR\\=
\BL 3\Sy{a}\BR \oplus \BL 2\Sy{c} \BR\\=
3\star \BL 1\Sy{a}\BR \oplus 2\star \BL 1\Sy{c} \BR\\
\:\\
\quad \LCL 1\Sy{a} + 0\Sy{b} + 1\Sy{a} + 1\Sy{c}\LCR \\=
\LCL 1\Sy{a}\LCR \oplus \LCL 0\Sy{b}\LCR \oplus \LCL 1\Sy{a}\LCR \oplus \LCL 1\Sy{c}\LCR \\=
1\star \LCL 1\Sy{a}\LCR \oplus 0\star \LCL 1\Sy{b}\LCR \oplus 1\star \LCL 1\Sy{a}\LCR \oplus 1\star \LCL 1\Sy{c}\LCR \\
\:\\
\quad \LCL 3\Sy{a} + 2\Sy{c} \LCR \\=
\LCL 3\Sy{a}\LCR \oplus \LCL 2\Sy{c} \LCR \\=
3\star\LCL 1\Sy{a}\LCR \oplus 2\star \LCL 1\Sy{c} \LCR$
「係数 1 は書かない」とか「係数 0 の項は書かない」とかもルールだが、あくまでルールであって、「係数 1 は存在しない」とか「係数 0 の項は存在しない」わけではないし、「係数 1 は書いてもいい」し「係数 0 の項も書いてもいい」。ほんとのところは:
- 係数 1 は書くべきだが、面倒だからほとんど常に省略される。
- 係数 0 の項は、簡約〈reduction〉により取り除かれる。簡約済みの標準形〈正規形〉には係数 0 の項は登場しない。
横着するための略記のルール(人が**恣意的・偶発的・怠惰**に決めた約束ごと)と数学的事実(集合や写像の概念で記述できる命題)は別物。ゴッチャにしてはいけない。混乱したら、略記しないで**完全記法で書こう**。もう、記法に騙されて時間を無駄にするのはやめよう。