同じという概念は非常に面白いものです。
同じかどうかを判定するためには2項が必要です。
比較というのは、2項を調べる2項演算子なんですよ。
2項あるということは、それらが「違う」ものであると認識済みであるということです。
同じものには、必ず違う部分があります。
比較可能なものは必ず2つ以上の要素を持ちます。
2つ以上の要素がなければ比較することが出来ません。
私はそれに名前をつけました。
それは、「値」と、「識別子」です。
比較可能な全てのオブジェクトは、値と識別子を持ちます。
Object{
値
識別子
}
オブジェクトa,bがあるとき、識別子が異なり値が同じものが「同じオブジェクト」です。
オブジェクトa,bがあるとき、識別子が異なり値が異なるものが「異なるオブジェクト」です。
Object a b;
((a.値 == b.値) && (a.識別子 != b.識別子))//同じ
((a.値 != b.値) && (a.識別子 != b.識別子))//異なる
あなたが何かを比較し、同じものだと思った場合、必ず同じ部分と違う部分があります。
数学でももちろんそうですよ。
通常の数学では、値は数値、識別子は場所です。
例えば次の式では左辺の識別子は1文字目、右辺の識別子は3文字目です。
5=5
数学では一見値だけを扱っているように見えて、隠しパラメータとして位置情報という識別子も使っているんですよ。
通常、数学において識別子は大して意味を持ちません。
ただの構文のルールです。
しかし、無限を考えるとき。特に無限の比較を考えるとき識別子は無視できないと思うんですよね。
もし識別子の数が有限だった場合、値の範囲が無限であったとしても
はたして値の数が無限であることを示せるのでしょうか?
自然数は比較が可能なオブジェクトです。
よって値と識別子を持ちます。
自然数の数を数えるときは、値の範囲だけではなく、識別子の範囲をみて個数を決めるべきではないでしょうか?