Injectivity and surjectivity describe properties of a function. An injection, or one-to-one function, is a function for which no two distinct inputs produce the same output. A surjection, or onto function, is a function for which every element in the codomain has at least one corresponding input in the domain which produces that output. A function that is both injective and surjective is called bijective. Wolfram|Alpha can determine whether a given function is injective and/or surjective over a specified domain.