「掛け算の順序(あるいは左右)を区別して、それを逆に(左右を交換して)書くことは過ちとすべき」という意見の持ち主を、ここでは“掛け算順序区別論者”と呼ぶことにします。
僕は、掛け算順序区別論者に与することはありません。とはいえ、
「5×4 と 4×5 を区別せよ」論者に対して、懇切な説明や説得を試みる気はありません。「5×4 と 4×5 を区別せよ」を本気で主張している人を説得できる可能性は低いでしょう。説得可能だとしても、とても労力がかかるでしょう。-- 不毛。
掛け算順序区別論に反論する気もないです。理由は、めんどくさいからです。鬱陶しいからです。
ひとつ前の記事のコメント欄で、差し障りがある事を言ってしまったんですが:
結局、このテの“掛け算順序区別論者”は、現象と法則の認識能力と、それを整理して位置付けるバランス感覚が欠如しているんだよね。だから説得できない。
バランス感覚が欠如している相手は説得できないから、説得はしないよ、は本音です。
“めんどくさい/鬱陶しい”ことになる事情のひとつは、掛け算順序区別論者が根拠とする個別事例(例えば、入れ子になったループの内側と外側を交換できないとか)は、それ自体は正しいので、「それはそうだけど」と言わざるを得ないことです。「それはそうだけど」の後が本論なのだけど、「それはそうだけど…」「でしょう、やっぱりそうでしょう。他にも…」みたいな展開になると、もうウンザリ、グンニャリ。
で、「それはそうだけど」の事例を幾つか出します。「もう、それは分かっているからさー」と言いたいから確認するだけです。そこから先の本論はしないけどね。
掛け算の背後にある状況、算数の文章題が記述するような状況では、a×b のaとbが異なる意味あいを持つことは多いです。「速さ×時間」は典型的でしょう。
- a km/時間 × b 時間
これを、速さを固定して時間を動かすと考えれば、距離 = f(時間) という「等速直線運動を記述する関数」になります。関数 f が、パラメータである速さ a km/時間 で決まる状況です。
関数適用 f(b) を、<f | b> の形に書いてみます。これも一種の掛け算と言えます*1が、<f | b> の左は関数で右はその引数です。線形代数の文脈では、左が双対ベクトル空間の要素(コベクトル)で、右が元のベクトル空間の要素(ベクトル)になります。関数と引数、あるいは双対空間と元の空間を混同するのはマズイので、左と右は区別すべきです。
しかし、<f | b> という書き方の約束は恣意的なものであり、<b | f> と書いても何の不都合も起きません。通常の関数適用 f(a) にしても、(a)f と書いても(ローカル・ルールとしては)別にかまいません。f(a) と書くのは、(広く合意はされているが)単なる偶発的習慣に過ぎません。線形代数における関数適用〈ペアリング〉については次の記事に書いてあります。
次に、足し算について考えてましょう。基数(モノの個数)の場合、a + b の左右の役割の区別は特になく、“合併としての足し算”の交換法則はほぼ明らかでしょう。強いて言えば、「最初にa個あったところに、後からb個付け足した」と「最初にb個あったところに、後からa個付け足した」のように、時間的な推移を入れると左右の区別があるかもしれません*2。
序数(モノの順番)の場合、足し算の交換法則はそれほど明らかではありません。基数に比べて、より時間的・手順的な操作が伴うからです。「a番目まで勘定した後で、そこからさらにb番目まで勘定する」と「b番目まで勘定した後で、そこからさらにa番目まで勘定する」の違いです。関連することが次の記事に書いてあります。
足し算の左右の意味あい・役割が違う例に、アフィン空間の足し算 P + v があります。これは点とベクトル(移動)との足し算で、次の法則が成立します。
- P + (v + w)= (P + v) + w
- P + 0 = P
- P, Q に対して、P + v = Q となるvがひとつだけ存在する
P + (v + w) と書いたとき、最初の足し算記号は「点に対して、ベクトルが移動として作用」することを表しており、二番目の足し算記号は「ベクトルの足し算」です。
足し算ではあっても、左と右の役割は違うので区別する必要があります。ただし、点を左に、ベクトル(移動)を右に書くのは恣意的な取り決めです。ベクトルの足し算が可換なので、左にベクトルを書いてもかまいません*3。アフィン空間については、次の記事に書いています。