1. <mathematics> A function, f : A -> B, is injective or one-one, or is an injection, if and only if
for all a,b in A, f(a) = f(b) => a = b.
I.e. no two different inputs give the same output (contrast many-to-one). This is sometimes called an embedding. Only injective functions have left inverses f' where f'(f(x)) = x, since if f were not an injection, there would be elements of B for which the value of f' was not unique. If an injective function is also a surjection then is it a bijection.
2. <reduction> An injection function is one which takes objects of type T and returns objects of type C(T) where C is some type constructor. An example is
f x = (x, 0).
The opposite of an injection function is a projection function which extracts a component of a constructed object, e.g.
fst (x,y) = x.
We say that f injects its argument into the data type and fst projects it out.