このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

掛け算の順序問題: 左右の意味あいが違う事例はあるけど…

「掛け算の順序(あるいは左右)を区別して、それを逆に(左右を交換して)書くことは過ちとすべき」という意見の持ち主を、ここでは“掛け算順序区別論者”と呼ぶことにします。

僕は、掛け算順序区別論者に与することはありません。とはいえ、

「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。アフィン空間については、次の記事に書いています。

*1:ペアリング <- | -> が双線形写像ですから。

*2:積分定数さんによるコメントのリンク先を参照

*3:非可換な群やモノイドが集合に作用しているときは、左作用と右作用は明確に区別します。