【圏論メモ】圏 Set の上でモニック/エピックと単射/全射が同値であることの証明

# モニックと単射の同値性
## 命題
$f: A \rightarrow B$ が 圏 $\textbf{Set}$ の射としてモニックであることと集合の写像として単射であることは同値である。

## 定義
### モニック
射 $f: A \rightarrow B$ がモニックであるとは、 $\forall g,h: C \rightarrow A$ について

```math
f \circ g = f \circ h \Longrightarrow g = h
```

を満たすことを言う。

### 単射
写像 $f: A \rightarrow B$ が単射であるとは、$\forall a_1, a_2 \in A$ について

```math
f(a_1) = f(a_2) \Longrightarrow a_1 = a_2
```

を満たすことを言う。

※ なお圏 $\textbf{Set}$ 上では、写像と射は同じものである。

## 証明
### モニック ⇒ 単射
$f: A \rightarrow B$ をモニックな射とする。
$a_1, a_2 \in A$ を任意にとり、$f(a_1) = f(a_2)$ を仮定する。$C = \\{c_0\\}$ を 1点集合とし、$g, h: C \rightarrow A$ を

```math
g(c_0) = a_1, h(c_0) = a_2
```

と定義すると、$\forall c \in C$ （といっても $c_0$ しかない）について、

```math
\bigl(f \circ g\bigr)(c) = f\bigl(g(c)\bigr) = f(a_1) = f(a_2) = f\bigl(h(c)\bigr) = \bigl(f \circ h\bigr)(c)
```

**関数の外延性** より、 $f \circ g = f \circ h$ である。

$f$ はモニックであったから、$g = h$

したがって、$a_1 = g(c_0) = h(c_0) = a_2$

$\forall a_1, a_2 \in A, f(a_1) = f(a_2)$ を仮定して $a_1 = a_2$ が言えた。つまり、$f$ は単射である。

### 単射 ⇒ モニック
$f: A \rightarrow B$ を単射な写像とする。
$g, h: C \rightarrow A$ を任意にとり、$f \circ g = f \circ h$ を仮定する。$\forall c \in C$ について、$a_1 = g(c), a_2 = h(c)$ とおくと、

```math
f(a_1) = f\bigl(g(c)\bigr) = \bigl(f \circ g\bigr)(c) = \bigl(f \circ h\bigr)(c) = f\bigl(h(c)\bigr) = f(a_2)
```

$f$ は単射であったから、$a_1 = a_2$、つまり $g(c) = h(c)$

関数の外延性より、 $g = h$

$\forall g, h: C \rightarrow A, f \circ g = f \circ h$ を仮定して $g = h$ が言えた。つまり、$f$ はモニックである。

以上により、単射であることとモニックであることは同値であることが示された。

# エピックと全射の同値性
## 命題
$f: A \rightarrow B$ が 圏 $\textbf{Set}$ の射としてエピックであることと集合の写像として全射であることは同値である。

## 定義
### エピック
射 $f: A \rightarrow B$ がエピックであるとは、$\forall g, h: B \rightarrow C$ について

```math
g \circ f = h \circ f \Longrightarrow g = h
```

を満たすことを言う。

### 全射
写像 $f: A \rightarrow B$ が全射であるとは、$\forall b \in B$ について

```math
\exists a \in A, f(a) = b
```

を満たすことを言う。

これは、次と同値である： $\forall b \in B$ について $b \in f(A)$

## 証明
### エピック ⇒ 全射
$f: A \rightarrow B$ をエピックな射とする。
$a_0 \in A$ を一つ適当にとる（$A = \emptyset $ の場合は後述）。$g: B \rightarrow B$ を

```math
g(b) = \left\{
\begin{array}{ll}
b && \bigl( b \in f(A) \bigr) \\
f(a_0) && \bigl( b \notin f(A) \bigr)
\end{array}
\right.
```

と定義すると、$\forall b \in B$ について、$g(b) \in f(A)$ が成り立つ。

また、$h = id_B$（$B$ 上の恒等写像）とする。
すると、 $\forall a \in A$ について、

```math
\bigl(g \circ f\bigr)(a) = g\bigl(f(a)\bigr) = f(a) = h\bigl(f(a)\bigr) = \bigl(h \circ f\bigr)(a)
```

が成り立つ。関数の外延性より、 $g \circ f = h \circ f$ である。
$f$ はエピックであったから、$g = h = id_B$ である。

したがって、$\forall b \in B$ について

```math
b = id_B(b) = g(b) \in f(A)
```

したがって、f は全射である。

#### 補足：A が空集合の場合
空集合から集合 $X$ への写像を空写像と呼び、 $0_X: \emptyset \rightarrow X$ と表す。これは任意の集合 $X$ に対してちょうど 1 つだけ存在する。
$A = \emptyset $ の場合、$f = 0_B$ であり $\forall g, h: B \rightarrow C$ について $g \circ f = 0_C = h \circ f$ が成り立つ。

したがって、$B \neq \emptyset $ の場合、$f$ はエピックではない。
$B = \emptyset $ の場合 $f$ はエピックと言えるが、この場合 $f(A) = f(\emptyset ) = \emptyset = B$ より $f$ は全射である。

### 全射 → エピック
$f: A \rightarrow B$ を全射な写像とする。
$g, h: B \rightarrow C$ を任意にとり、$g \circ f = h \circ f$ を仮定する。

$b \in B$ を一つ任意にとる。$f$ は全射であったから、$\exists a \in A, b = f(a)$ である。

したがって、この $b$ について、

```math
g(b) = g\bigl(f(a)\bigr) = \bigl(g \circ f\bigr)(a) = \bigl(h \circ f\bigr)(a) = h\bigl(f(a)\bigr) = h(b)
```

が成り立つ。関数の外延性より、 $g = h$ である。

$\forall g, h: B \rightarrow C, g \circ f = h \circ f$ を仮定して、 $g = h$ が言えた。つまり、$f$ はエピックである。

以上により、全射であることとエピックであることは同値であることが示された。