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

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

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

参照用 記事

ネーミング/コーディングは写像ではない

[追記]: 関係のtotalityの定義が間違っていたので削除。これに関する話はまた改めてするかも知れません。しないかも知れません。

昨日

正確には可逆性が本質ではありません。可逆性からinduceされる一意性の保存(変換の単射性)のほうが欲しかったことです

と書いたけど、あんまり“正確”ではありませんでした。

そもそも、ネーミングとかコーディング(符号化)では、モノに対して名前/符号が1つとは限らないので、写像と捉えることができない場合が多いのです。だから、単射(injection)、双射(bijection)、全射(surjection; 僕は訳語「上射」のほうが好き)とかの概念はそのままでは使えないのです。

ネーミング/コーディングを一般的に考えるなら、写像でなくて関係(relation)のほうですね。関係でも向きは考えるので、「モノ→名前」という方向の関係を考えます。写像との違いは:

  • 複数の名前を持つモノがあってもよい。
  • すべのてモノが名前を持つとは限らない(無名のモノもあるかも)。

はてな」でも、同一人物が複数アカウント持てるでしょう、無名ユーザーはダメだけど、例えば一時的なゲストとか許すと無名ユーザーが生じる可能性も考えられます。

さて、(向きを持った)関係で単射性(injective)に代わる概念は単葉<たんよう>性(univalent)です。「モノ→名前」関係について言えば:

  • どんな名前でも、その名前を持つモノが1つだけか、または1つも存在しない。

ここからは論理式が好きは人のために: 「モノxが名前(文字列)sを持つ」という関係をN(x, s)と書くとして:

  • 関係Nがunivalent ⇔ ∀s∈S.∀x,y∈X.[N(x, s)∧N(y, s) → x = y]

もし、N(x, s)が f(x) = s で与えられているなら、

  • ∀s∈S.∀x,y∈X.[f(x) = s ∧ f(y) = s → x = y]

なので、これはfの単射性のことですね。