「人が男か女か」は容易に決定できると、なんとなく思っていますが、事情はそう簡単ではないですね。
架空の人物Aさんを考えましょう。Aさんは男として生まれ男として育ったとします。いわゆる“性転換手術”を受けて女性として性風俗店で働き、現役引退して経営者になったとしましょう。Aさんは戸籍上は男性のままだったとします。女性らしい体型の維持や化粧が負担でもあったので、Aさんは男装(?)に切り替えたとします。社会的には男性のビジネスマンとして認知されるようになりましたが、私生活では女性の側面も残っています(例えば、男性の恋人がいる)。
こんなAさんの性別は男か女か?
「人が男か女か」を判断する基準がいくつかあります。
- 生物学的な雌雄、原則的に染色体で判断可能。
- 戸籍上、男女どちらで登録されているか。
- 身体的特徴(生殖器や乳房など)。
- 社会的に、男女どちらとして生活しているか。
- 自分自身の意識として、男女どちらと認識しているか。
もっとほかの判断基準があるかも知れません。また、単一の判断基準に対しても二値的に決定可能とは言えません。例えば、「自分自身の意識として、男女どちらと認識しているか」に対して「特にどちらとも認識してない」と答えるケースもあるでしょう。
僕は、トランスジェンダーの問題に興味があるわけではありません。こんなことを考えたキッカケはずっと他愛もないことです。
「鳩の巣原理」の応用例として(「有限集合とは何だろう への補足」参照)、ある瞬間における全人類に対して、髪の毛の本数を与える関数 numberOfHairsOnHumanHead : Human → N を想定します。ここで、Humanはすべての人間で、Nはすべての自然数です(0も含みます、ツルッパゲなら0です)。numberOfHairsOnHumanHead は理想化した概念上の存在で、現実的には、人の髪の毛の本数を勘定するのは不可能です。
同様に理想化した事例として、ある瞬間における全人類に対して、その性別を与える関数 gender : Human → {male, female} が想定されます。これも理想化した概念上の存在ですが、numberOfHairsOnHumanHead よりは現実的に定義可能な気がします。気がするけどホントかな? -- 全域決定性の二値関数として定義するのはまったく現実的じゃないですね。