動機 #
商ベクトル空間に関連して必要になったのでメモを残すことにした。
well-definedとは #
英語版wikipediaでは
In mathematics, a well-defined expression or unambiguous expression is an expression whose definition assigns it a unique interpretation or value. Otherwise, the expression is said to be not well defined, ill defined or ambiguous.[1] A function is well defined if it gives the same result when the representation of the input is changed without changing the value of the input. 🔗https://en.wikipedia.org/wiki/Well-defined_expression
と説明されている。
翻訳すると
数学では、うまく(よく)定義された式または曖昧でない式とは、その定義によって一意的な解釈または値が割り当てられる式のことである。そうでない場合、式はよく定義されていない、定義されていない、または曖昧であると言われる。入力の値を変えずに入力の表現を変えても同じ結果が得られる場合、関数はよく定義されている。
となることから分かるように、well-definedは日本語ではうまく定義されたといった感じだ。
この説明では分かりにくいのでwell-defind、ill-definedの具体例をいくつか見ていく。
具体例 #
ill-definedの単純な例 #
\(g\)という関数があったときに、例えば、\(g(0.25) \neq g( \frac{1}{4}) \)であれば\(g\)はill-definedである。
なぜなら\(0.25 = \frac{1}{4}\)であり、同じ数を引数に取っているのに結果が異なってしまっているからだ。
写像 #
これはwikipediaに載っている例を改変したものだ。
集合\(X_0,\space X_1\)に関して、\(X = X_0 \cup X_1\)とする。
\(a \in X_0\)ならば\(f(a)=0\)、\(a \in X_1\)ならば\(f(a) = 1\)である写像 \(f: X \to \lbrace 0, 1 \rbrace \)を考える。
この写像\(f\)がwell-definedであるのは、\(X_0 \cap X_1 = \emptyset \)のときである。
例えば、\(X_0=\{ 1,3\}, \space X_1 = \{ 2, 4\} \)のようなときである。
\(X_0 \cap X_1 \neq \emptyset \)のとき、well-definedでない、つまり、ill-definedである。
なぜなら、\(X_0=\{ 1,3\}, \space X_1 = \{ 2, 3\} \)を考えると、\(3 \in X_0 \cap X_1\)であり、\(f(3)=0\)かつ\(f(3)=1\)になってしまうからである。
二項演算と同値類について #
ill-definedである例 #
$$ \Z_{\geqq 0} / \equiv_3 \space =\{[0],\space [1], \space [2]\} $$ という0以上の整数全体の\(\equiv \mod 3\)による商集合を考える。
商集合は同値類(集合)の集合である。
同値類とは\([0], [1], [2]\)のことであり、それぞれ、
$$
[0] = \{ 0, \space 3, \space 6, \space \dots \} \\
[1] = \{ 1, \space 4, \space 7, \space \dots \} \\
[2] = \{ 2, \space 5, \space 8, \space \dots \}
$$
となる。
3で割った余りが1であれば、\([1]\)の元であり、余りが2であれば\([2]\)の元になるということだ。
同地類に属している元はどれもが代表元であることを思い出しておいてほしい。
つまり、\([0] = [3] = [6]\)だ。
さて、ここで\(\Z_{\geqq 0} / \equiv_3 \)に関して
$$
[x] * [y] \coloneqq [2^x + 2^y]
$$
という二項演算*
を定義する。
実はこの二項演算はill-definedである。 なぜなら、 $$ [1] * [1] = [2^1 + 2^1] =[2 + 2] = [4] = [1] \\ $$ である一方で、 $$ [4] * [4] = [2^4 + 2^4]= [16 + 16] = [32] = [2] $$ だからだ。
これのどこがおかしいのかと言えば、[1] = [4]は同じ集合であるのに、二項演算*
を適用した結果(同じ計算をした結果)が異なってしまっているからだ。
[1] = [4]であるのは[4]の要素は\(3x+4 \quad(x=0, \space \dots)\)の形で表すことができて、\(3\)で割ると\(1\)余るので。
テキトーに演算を創造するとこんなことになってしまう場合があるようだ。
well-definedである例 #
先程の\(\Z_{\geqq 0} / \equiv_3 \)に別の演算を定義してみる。
$$ [x] + [y] \coloneqq [x+y] $$
この+
演算では先程のように代表元を取り替えても不整合は生じない。
\([x],\space [y]\)の異なる代表元\(x_1, \space x_2 \in [x], \space y_1, \space y_2 \in[y]\)を考えると、 $$ [x_1] + [y_1] = [x_1 + y_1] \\ =[x_1 - x_2 + x_2 + y_1 - y_2 + y_2 ] \\ =[x_1 - x_2] + [y_1 - y_2]+ [x_2 + y_2] \\ =[0] + [0]+ [x_2 + y_2] \space \because x_1 \sim x_2, \space y_1 \sim y_2 であり、差が3の倍数になる \\ = [x_2 + y_2] \space \because [0]+ [x_2 + y_2] = [0 + x_2 + y_2] $$ なので、\( [x_1] + [y_1] = [x_2] + [y_2] \)となる。
つまり、この二項演算+
は代表元を取り替えても結果が同じになるようになっているということだ。
このような場合、演算+
は代表元に依らないなどともいわれる。