A function is defined as a mapping between two sets. The notation for this is
f: A -> B
This means that the function
f maps an element from set
A to an element in set
B. Or, more informally,
f takes an argument of type
A, and returns an argument of type
B.
Functions come in 3 flavours: Injection, Surjection and Bijection.
Injection
A function f: A -> B is
one-to-one if for all a1, a2 in A, a1 != a2 implies f(a1) != f(a2).
This is also known as an injection. Informally, it means that no two elements in A map to the same element in B.
Surjection
A function g: A -> B is
onto if for all b in B, there exists a in A with g(a) = b.
This is also known as a surjection. Informally, it means that all elements in B are mapped to. It is possible, unlike an injection, to have an element of B mapped to by more than one element in A.
Bijection
A function is a bijection if it is both an injection and a surjection.
If f: A -> B is one-to-one and onto, then it provides a
one-to-one correspondence between the sets A and B. Informally, every element of A maps to exactly one element of B, and all elements of B are mapped to.
You often see
one-to-one (mis)used to mean
there is a one-to-one correspondence.