1. Sets

Sets 

抽象的に行く前に具象圏をいくつか紹介する。昨日は一つの圏の話しかしてこなかったので、これは役に立つことだと思う。

集合と全域関数 (total function) の圏は太字で Sets と表記する。 Scala では、大雑把に言うとこれは Int => String というように型と関数によってエンコードできる。 だけど、プログラミング言語はボトム型 (Nothing)、例外、停止しない (non-terminating) コードなどを許容するので、このエンコーディングが正しいのかという哲学的な議論があるらしい。便宜上、本稿ではこの問題を無視して Sets をエンコードできるふりをする。

Setsfin 

全ての有限集合とその間の全域関数を Setsfin という。今まで見てきた圏がこれだ。