流用も転用もオーバーロードが起きるもとになる現象。
P が生きている人の集合、'親子' が親子関係、'親'と'子'が関係における役割り名(ペアのポジションに付けた名前、成分射影に付けた名前)。'親'と'子'は関係に対応する述語 P✕P → Bool の名前付き引数の名前、引数変数名。
R := 親子関係 と置いて、R は外延だとする。
役割り名(引数変数名、引数ラベル)であった'親'は射影関数の名前に流用(あるいは転用)される。
get_親 : R → P in Set
関係付きペア〈related pair〉(R の要素)の第二成分を取る関数。
ニ項関係から二種類の非決定性関数が得られる。そのうちのひとつは:
親_of_ : P → P in NDet
get_親 の像集合と 親_of_ の像集合は一致する。
The_親_s := Img(get_親) = Img(親_of)
The_親_s ⊆ P
'親'は、関係における単なる関係ラベル(タブルを関数とみての引数)。get_親 はラベル '親' のゲルファント変換。親_of はワイヤーストレッチング。The_親_s は像集合。one_親 ∈ The_親_s は要素。
まとめると:
- 親子関係の役割り名 '親'
- 射影関数 get_親
- 非決定性関数 親_of
- 集合 The_親_s
- 要素 one_親 ∈ The_親_s
集合の所属関係と、そこでの役割り名 '要素', '集合' に同じ議論を適用すると:
- 所属関係の役割り名 '集合'
- 射影関数 get_集合
- 非決定性関数 集合_of
- 集合 The_集合_s
- 要素 one_集合 ∈ The_集合_s
The_集合_s に空集合が入らなくなる。これは、空集合が定義上アトムだから。