# Injective, Surjective, Bijective
Injections, surjections, and bijections are *class of functions* distinguished by the manner in which *arguments* (/posts/input expressions from the *[domain](Domain-Codomain-Range-Image.md)*) and *[images](Domain-Codomain-Range-Image.md)* (output expressions from the *[domain](Domain-Codomain-Range-Image.md)*) are related or *mapped* to each other.

So, given a function:
$f : X \rightarrow Y$
We can can define the following two terms:
* **Onto**: If each element of the codomain is mapped by *at least* one element of the domain.
* **One-to-one**: If each element of the codomain is mapped by *at most* one element of the domain
* Injective: **one-to-one** (Every item in $X$ is mapped to a *unique* item in $Y$, via $f$. I.e. no two items in $X$ are mapped to the same value in $Y$)
* Surjective: **onto** (Every item in $Y$ is mapped from $X$, via $f$. I.e. all items in $Y$ have some corresponding item in $X$ via the map $f$, no value in $Y$ is left without a corresponding item in $X$)
* Bijective: **one-to-one** and **onto** (Every item in $Y$ is mapped to via a unique value in $X$, via $f$ . I.e. all items in $Y$ have a unique corresponding item in $X$, related via the map $f$. No two items in $X$ are mapped to the same item in $Y$)
Another way of viewing this is:

---
References:
* [wikipedia](https://en.wikipedia.org/wiki/Bijection,_injection_and_surjection).