----
> [!definition] Definition. ([[inverse map]])
> Let $f: A \to B$ and $g: B \to A$. If $g\circ f=\id_{A}$ then $g$ is called a **left-inverse** of $f$. If $f \circ g=\id_{B}$ then $g$ is called a **right-inverse** of $f$. If $g$ is both a right-inverse and a left-inverse then it is the (unique) **inverse** of $f$.
^definition
> [!equivalence]
> Assume $A \neq \emptyset$, and let $f:A \to B$ be a function. Then
>1. $f$ has a left-inverse if and only if it is an [[injection]];
>2. $f$ has a right-inverse if and only if it as a [[surjection]].
>
>Hence $f$ is a [[bijection]] if and only if it has a (two-sided) inverse.
>\
>The right-inverses of a [[surjection]] are called **sections**.
^equivalence
> [!proof] Proof of Equivalence.
> **1.**
$\to$. Let $g:B \to A$ be a left-inverse, $g \circ f=\id_{A}$. Take $f(a)$ and $f(b)$ in $B$. If $f(a)=f(b)$, then $g\circ f(a)=g \circ f(b)$. But $g \circ f(a)=a$ and $g \circ f(b)=b$. So $a=b$.
>
$\leftarrow.$ Suppose $f$ is an [[injection]]. Given $b \in \im f$, there is a unique $a \in A$ s.t. $f(a)=b$, since $f$ is an [[injection]]. Thus the function $h: \im f \to A$ given by $h(b)=a$ is [[well-defined]]. Now we can define $g:B \to A$ to equal $h(b)$ for $b \in \im f$ and whatever element of $A$ we want for $b \in B \cut \im f$. This function is a left-inverse of $f$.
>
**2.** $\to.$ Let $g: B \to A$ be a right-inverse, $f \circ g=\id_{B}$. Let $b \in B$ and define $g(b)=:a$. Now apply $f$ on both sides to get $b = f \circ g(b)=f(a)$. Hence $f$ is a [[surjection]].
>
$\leftarrow$. Let $f:A \to B$ be a [[surjection]]. Given $b \in B$, we have $b=f(a)$ for some $a \in A$, then define $g:B \to A$ by $g(b)=a$ (there may be multiple valid $a$, choose any one). Then $f \circ g(b)=f(a)=b$. Thus $g$ is a right inverse of $f$.
^proof
----
####
----
#### References
> [!backlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM [[]]
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```
> [!frontlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM outgoing([[]])
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```
#reformatrevisebatch03