In mathematics, **codimension** is a basic geometric idea that applies to subspaces in vector spaces, to submanifolds in manifolds, and suitable subsets of algebraic varieties.

For affine and projective algebraic varieties, the codimension equals the height of the defining ideal. For this reason, the height of an ideal is often called its codimension.

The dual concept is relative dimension.

Codimension is a *relative* concept: it is only defined for one object *inside* another. There is no “codimension of a vector space (in isolation)”, only the codimension of a vector *sub*space.

If *W* is a linear subspace of a finite-dimensional vector space *V*, then the **codimension** of *W* in *V* is the difference between the dimensions:^{[1]}

It is the complement of the dimension of *W,* in that, with the dimension of *W,* it adds up to the dimension of the ambient space *V:*

Similarly, if *N* is a submanifold or subvariety in *M*, then the codimension of *N* in *M* is

Just as the dimension of a submanifold is the dimension of the tangent bundle (the number of dimensions that you can move *on* the submanifold), the codimension is the dimension of the normal bundle (the number of dimensions you can move *off* the submanifold).

More generally, if *W* is a linear subspace of a (possibly infinite dimensional) vector space *V* then the codimension of *W* in *V* is the dimension (possibly infinite) of the quotient space *V*/*W*, which is more abstractly known as the cokernel of the inclusion. For finite-dimensional vector spaces, this agrees with the previous definition

and is dual to the relative dimension as the dimension of the kernel.

Finite-codimensional subspaces of infinite-dimensional spaces are often useful in the study of topological vector spaces.

The fundamental property of codimension lies in its relation to intersection: if *W*_{1} has codimension *k*_{1}, and *W*_{2} has codimension *k*_{2}, then if *U* is their intersection with codimension *j* we have

- max (
*k*_{1},*k*_{2}) ≤*j*≤*k*_{1}+*k*_{2}.

In fact *j* may take any integer value in this range. This statement is more perspicuous than the translation in terms of dimensions, because the RHS is just the sum of the codimensions. In words

*codimensions (at most) add*.- If the subspaces or submanifolds intersect transversally (which occurs generically), codimensions add exactly.

This statement is called **dimension counting,** particularly in intersection theory.

In terms of the dual space, it is quite evident why dimensions add. The subspaces can be defined by the vanishing of a certain number of linear functionals, which if we take to be linearly independent, their number is the codimension. Therefore, we see that *U* is defined by taking the union of the sets of linear functionals defining the *W*_{i}. That union may introduce some degree of linear dependence: the possible values of *j* express that dependence, with the RHS sum being the case where there is no dependence. This definition of codimension in terms of the number of functions needed to cut out a subspace extends to situations in which both the ambient space and subspace are infinite dimensional.

In other language, which is basic for any kind of intersection theory, we are taking the union of a certain number of constraints. We have two phenomena to look out for:

- the two sets of constraints may not be independent;
- the two sets of constraints may not be compatible.

The first of these is often expressed as the **principle of counting constraints**: if we have a number *N* of parameters to adjust (i.e. we have *N* degrees of freedom), and a constraint means we have to 'consume' a parameter to satisfy it, then the codimension of the solution set is *at most* the number of constraints. We do not expect to be able to find a solution if the predicted codimension, i.e. the number of *independent* constraints, exceeds *N* (in the linear algebra case, there is always a *trivial*, null vector solution, which is therefore discounted).

The second is a matter of geometry, on the model of parallel lines; it is something that can be discussed for linear problems by methods of linear algebra, and for non-linear problems in projective space, over the complex number field.

Codimension also has some clear meaning in geometric topology: on a manifold, codimension 1 is the dimension of topological disconnection by a submanifold, while codimension 2 is the dimension of ramification and knot theory. In fact, the theory of high-dimensional manifolds, which starts in dimension 5 and above, can alternatively be said to start in codimension 3, because higher codimensions avoid the phenomenon of knots. Since surgery theory requires working up to the middle dimension, once one is in dimension 5, the middle dimension has codimension greater than 2, and hence one avoids knots.

This quip is not vacuous: the study of embeddings in codimension 2 is knot theory, and difficult, while the study of embeddings in codimension 3 or more is amenable to the tools of high-dimensional geometric topology, and hence considerably easier.