# What are usual notations for surjective, injective and bijective functions?

Update: In the category of sets, an epimorphism is a surjective map and a monomorphism is an injective map. As is mentioned in the morphisms question, the usual notation is $\rightarrowtail$ or $\hookrightarrow$ for $1:1$ functions and $\twoheadrightarrow$ for onto functions. These arrows should be universally understood, so in some sense, this is a narrow duplicate of the morphisms question.

What are usual symbols for surjective, injective and bijective functions? I think in one of Lang's book I saw an arrow with 1:1 e.g. $A\xrightarrow{\rm 1:1}B$ above it to be understood as a bijective function , what are usual notations for surjective, injective and bijective functions?

Update : maybe following notations make sense and are also easily latexed : $A\xrightarrow{\rm 1:1}B$, $A\xrightarrow{\rm onto}B$, $A\xrightarrow{\rm 1:1,onto}B$

I don't know if these notations make sense with morphisms question, but this question was specific and there was no intent to find an answer for the more general case ( but would definitely be preferred).

• possible duplicate of Special arrows for notation of morphisms
– t.b.
Commented Jun 21, 2011 at 11:38
• @user6312: "From the internationalization perspective, the current nomenclature is an improvement." I agree. The problem for non-native speakers with "onto" and "one to one onto" is that it sounds very idiomatic. Commented Jun 21, 2011 at 12:26
• @Asaf: I don't get it. It's exactly the same question in a special context.
– t.b.
Commented Jun 21, 2011 at 12:31
• @Americo Tavares: But I do prefer short plain words. Mantissa, abscissa, denominator, subtrahend, associative, and so on make it harder for students to know that we are dealing with real things. Commented Jun 21, 2011 at 12:40
• $A\xrightarrow{\rm bij}B$ is nice and concise
– john
Commented Dec 6, 2021 at 4:28

I personnaly use $\hookrightarrow$ to mean injection and $\twoheadrightarrow$ to mean surjection. Although I do not have a particular notation to mean bijection, I use $\leftrightarrow$ to mean bijective correspondance.

• seems reasonable, except for dobuble headed bijective arrow which still makes sense. Commented Jun 21, 2011 at 19:57
• How do you know when your ↪ means injection or when it means inclusion map? Commented Feb 6 at 9:47

My favorites are $\rightarrowtail$ for an injection and $\twoheadrightarrow$ for a surjection. In the days of typesetting, before LaTeX took over, you could combine these in an arrow with two heads and one tail for a bijection. Perhaps someone else knows the LaTeX for this.

• Sounds like a good question for our sister site Commented Jun 21, 2011 at 12:42
• @Willie, John: $\rightarrowtail$ I assume and it is \rightarrowtail (from the commonly used amssymb) Commented Jun 21, 2011 at 12:48
• There's an easy fix to combine the two into one, similar to Theo's but a bit shorter use just \hspace except negative so we can get stuff like $\rightarrowtail \hspace{-8pt} \rightarrow$ and $\hookrightarrow \hspace{-8pt} \rightarrow$, just by doing '\rightarrowtail \hspace{-8pt} \rightarrow' and '\hookrightarrow \hspace{-8pt} \rightarrow'. Although there is an issue with the rightarrowtail being a bit small. Commented Jun 21, 2011 at 21:22
• @JSchlather Try \mathbin{\rightarrowtail \hspace{-8pt} \twoheadrightarrow} which gives: $\mathbin{\rightarrowtail \hspace{-8pt} \twoheadrightarrow}$ Commented Nov 29, 2016 at 9:54
• I quite like another idea: mathoverflow.net/questions/42929/suggestions-for-good-notation/… Commented Oct 6, 2018 at 9:05

I usually use two types of notations for function, injection, surjection and bijiection as follows.

Note that the \twoheadrightarrowtail is defined as follows, and the others are AMS symbols.

Since the authors of preceding answers seem to have gotten away with presenting notation as they (individually) like it, allow me to present notation I like instead: I'm used to denoting the relation between domain and codomain as

$$\large \unicode{x1f814} \hspace{-0.3em} \unicode{x1f816}$$ for bijections, i.e. for functions which are both injective and surjective; and

$$\large \! \style{display: inline-block; transform: translateY(-1px)}{\unicode{xFF0D}} \hspace{-0.8em} \style{display: inline-block; transform: translateY(-1px)}{\unicode{xFF0D}} \hspace{-0.5em} \unicode{x1f816}$$ for injections which are not bijections, i.e. which are not surjective as well.
(Since other answers seem to attach different meaning to arrows pointing only in the one direction from domain to codomain, I've tried to draw my arrows consistently in a separate style.)

For functions which are in general "many-to-one" relations (and thus not injective) I'd symbolize the relation between domain and codomain correspondingly as

$$\large \unicode{5171} \hspace{-0.2em} \unicode{x1f816} {\hspace{-2.em} \style{display: inline-block; transform: rotate(153deg) translateY(-6px)}{\unicode{x1f816}}} {\hspace{-2.em} \style{display: inline-block; transform: rotate(-153deg) translateY(4px)}{\unicode{x1f816}}}$$ for surjective (and not injective) functions; and

$$\large \unicode{5171} \hspace{-0.3em} \unicode{x1f816}$$ for functions which are neither surjective, nor injective.

Readily added can be symbols for relating domain and codomain of maps which are in general "one-to-many", and which are therefore not functions at all:

$$\large \unicode{x1f814} \hspace{-0.2em} \unicode{5176} {\hspace{-0.5em} \style{display: inline-block; transform: rotate(-27deg) translateY(-6px)}{\unicode{x1f816}}} {\hspace{-1.em} \style{display: inline-block; transform: rotate(27deg) translateY(5px)}{\unicode{x1f816}}}$$ if the mapping is to each element of the codomain, or

$$\large \! \style{display: inline-block; transform: translateY(-1px)}{\unicode{xFF0D}} \hspace{-0.75em} \style{display: inline-block; transform: translateY(-1px)}{\unicode{xFF0D}} \hspace{-0.4em} \unicode{5176} {\hspace{-0.5em} \style{display: inline-block; transform: rotate(-27deg) translateY(-6px)}{\unicode{x1f816}}} {\hspace{-1.em} \style{display: inline-block; transform: rotate(27deg) translateY(5px)}{\unicode{x1f816}}}$$ otherwise.

• How do you make all those symbols in LaTeX? Commented Apr 29 at 1:31