A function is defined as a mapping between two sets. The notation for this is
f: A -> BThis 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.