今日はいわゆる「変数」あるいは「不定元」と言われる X に意味付けを与えてみる。
つまり、天下り的に X を与えてしまわないで、自然に(と思ってもらえるかどうかは判らないが)導出されるものであることを納得してもらう。
前回とは打って変わって、多項式は多項式関数のクラスとして考える。
可換環 R を係数とする多項式 f は R-環 S ごとに定義される関数
fS: x |-> a0*1S + a1*x + ... + an*xn
を寄せ集めたもの(集合と呼んでいいのか判らないからとりあえずクラスとしておく)である(1S は S の単位元)。
a0*1S + a1*x + ... + an*xn という表現は、1S と x から有限回の加算、乗算、R の元によるスカラー倍(ここでは * で表わしている)で得られる S の元を全て表わせることに注意しておく。
これらクラスに対し、和・積・スカラー倍を改めてそれぞれの R-環 S における和・積・スカラー倍に対応するように定義する。
つまり、
(f + g)S(x) = fS(x) + gS(x)
が全ての S の全ての x について成り立つように和を決める等。
ここで特別な元をピックアップしよう。
X0 を全ての S について
X0S(x) = 1 * 1S
であるものとする。
すると、1 * 1S はいつでも 1S だから全ての S について積の単位元になり、今考えている多項式の集合の中で X0 は積の単位元になる。
次に 1 以上の自然数 i に対し Xi を
XiS(x) = 1 * xi
であるものとする。
注意としては、今のところ Xi というのがただの一纏まりの記号であって X の i 乗は意味していないということ。
と注意を述べておきながら、これら(i=0 も含めた) Xi 同士の積を考える。
と X の i 乗と同じ規則を満たす(X0 を単位元とし X1 で乗法的に生成される可換モノイド)、ということになり、ある意味で X が何か解った。
すなわち、Xi という多項式関数のクラス達があって、それらを集めると普通の「変数」X の役目を果たせる、ということだ。
ということで着地点を X に絞ってみたが、今日の中心テーマは「多項式は多項式関数」と考えてみたかったということだ。
普通は「多項式は多項式関数ではない」というような扱いがあって「代入」という操作を改めて定義するわけだが、最初から関数ならそんな面倒なこともない。
それに代入をした値の和や積が和や積に代入した値と等しい、という性質を導くのも、話が逆になってすっきりしたと思う。
ただし、「関数」そのものではなく数学的には関数のクラスということになってしまったのでそこは少し解りづらい。
プログラム的にはジェネリックというかダックタイピングというかそういう処理になると思うのだが、そこはまだ詰めて考えていない。
|