# Operation (mathematics)

*The general operation as explained on this page should not be confused with the more specific operators on vector spaces. For a notion in elementary mathematics, see arithmetic operation.*

In its simplest meaning in mathematics and logic, an **operation** is an action or procedure which produces a new value from one or more input values, called "operands". There are two common types of operations: unary and binary. Unary operations involve only one value, such as negation and trigonometric functions. Binary operations, on the other hand, take two values, and include addition, subtraction, multiplication, division, and exponentiation.

Operations can involve mathematical objects other than numbers. The logical values *true* and *false* can be combined using logic operations, such as *and*, *or,* and *not*. Vectors can be added and subtracted. Rotations can be combined using the function composition operation, performing the first rotation and then the second. Operations on sets include the binary operations *union* and *intersection* and the unary operation of *complementation*. Operations on functions include composition and convolution.

Operations may not be defined for every possible value. For example, in the real numbers one cannot divide by zero or take square roots of negative numbers. The values for which an operation is defined form a set called its *domain*. The set which contains the values produced is called the *codomain*, but the set of actual values attained by the operation is its *range*. For example, in the real numbers, the squaring operation only produces nonnegative numbers; the codomain is the set of real numbers but the range is the nonnegative numbers.

Operations can involve dissimilar objects. A vector can be multiplied by a scalar to form another vector. And the inner product operation on two vectors produces a scalar. An operation may or may not have certain properties, for example it may be associative, commutative, anticommutative, idempotent, and so on.

The values combined are called *operands*, *arguments*, or *inputs*, and the value produced is called the *value*, *result*, or *output*. Operations can have fewer or more than two inputs.

An operation is like an **operator**, but the point of view is different. For instance, one often speaks of "the operation of addition" or "addition operation" when focusing on the operands and result, but one says "addition operator" (rarely "operator of addition") when focusing on the process, or from the more abstract viewpoint, the function +: S×S → S.

## General description

An **operation** ω is a function of the form ω : *V* → *Y*, where *V* ⊂ *X*_{1} × … × *X*_{k}. The sets *X*_{k} are called the *domains* of the operation, the set *Y* is called the *codomain* of the operation, and the fixed non-negative integer *k* (the number of arguments) is called the *type* or *arity* of the operation. Thus a unary operation has arity one, and a binary operation has arity two. An operation of arity zero, called a *nullary* operation, is simply an element of the codomain *Y*. An operation of arity *k* is called a *k*-ary operation. Thus a *k*-ary operation is a (*k*+1)-ary relation that is functional on its first *k* domains.

The above describes what is usually called a *finitary* operation, referring to the finite number of arguments (the value *k*). There are obvious extensions where the arity is taken to be an infinite ordinal or cardinal, or even an arbitrary set indexing the arguments.

Often, use of the term *operation* implies that the domain of the function is a power of the codomain (i.e. the Cartesian product of one or more copies of the codomain),^{[1]} although this is by no means universal, as in the example of multiplying a vector by a scalar.

## See also

### Special cases

### Related topics

Template:Col-begin Template:Col-break