In linear algebra, Cramer’s rule is an explicit formula for the solution of a system of linear equations with as many equations as unknowns, valid whenever the system has a unique solution. It expresses the solution in terms of the determinants of the (square) coefficient matrix and of matrices obtained from it by replacing one column by the vector of right hand sides of the equations. It is named after Gabriel Cramer (1704–1752), who published the rule for an arbitrary number of unknowns in 1750, although Colin Maclaurin also published special cases of the rule in 1748 (and possibly knew of it as early as 1729).^{}^{ }
Consider a system of n linear equations for n unknowns, represented in matrix multiplication form as follows:

where the n by n matrix has a nonzero determinant, and the vector is the column vector of the variables.
Then the theorem states that in this case the system has a unique solution, whose individual values for the unknowns are given by:
where is the matrix formed by replacing the ith column of by the column vector .
The rule holds for systems of equations with coefficients and unknowns in any field, not just in the real numbers. It has recently been shown that Cramer’s rule can be implemented in O(n^{3}) time, which is comparable to more common methods of solving systems of linear equations, such asGaussian elimination.
The proof for Cramer’s rule uses just two properties of determinants: linearity with respect to any given column (taking for that column a linear combination of column vectors produces as determinant the corresponding linear combination of their determinants), and the fact that the determinant is zero whenever two columns are equal (which is implied by the basic property that the determinant is alternating in the columns).
Fix the index j of a column. Linearity means that if we consider only column j as variable (fixing the others arbitrarily), the resulting function R^{n} → R (assuming matrix entries are in R) can be given by a matrix, with one row and n columns, that acts on column j. In fact this is precisely whatLaplace expansion does, writing det(A) = C_{1}a_{1,j} + … + C_{n}a_{n,j} for certain coefficients C_{1},…,C_{n} that depend on the columns of A other than column j (the precise expression for these cofactors is not important here). The value det(A) is then the result of applying the oneline matrixL_{(j)} = (C_{1} C_{2} … C_{n}) to column j of A. If L_{(j)} is applied to any other column k of A, then the result is the determinant of the matrix obtained from A by replacing column j by a copy of column k, so the resulting determinant is 0 (the case of two equal columns).
Now consider a system of n linear equations in n unknowns , whose coefficient matrix is A, with det(A) assumed to be nonzero:
If one combines these equations by taking C_{1} times the first equation, plus C_{2} times the second, and so forth until C_{n} times the last, then the coefficient of x_{j} will become C_{1}a_{1,j} + … + C_{n}a_{n,j} = det(A), while the coefficients of all other unknowns become 0; the left hand side becomes simply det(A)x_{j}. The right hand side is C_{1}b_{1} + … + C_{n}b_{n}, which is L_{(j)} applied to the column vector b of the right hand sides b_{i}. In fact what has been done here is multiply the matrix equation A ⋅ x = b on the left by L_{(j)}. Dividing by the nonzero number det(A) one finds the following equation, necessary to satisfy the system:
But by construction the numerator is the determinant of the matrix obtained from A by replacing column j by b, so we get the expression of Cramer’s rule as a necessary condition for a solution. The same procedure can be repeated for other values of j to find values for the other unknowns.
The only point that remains to prove is that these values for the unknowns, the only possible ones, do indeed together form a solution. But if the matrix A is invertible with inverse A^{−1}, then x = A^{−1} ⋅ b will be a solution, thus showing its existence. To see that A is invertible when det(A) is nonzero, consider the n by n matrix M obtained by stacking the oneline matrices L_{(j)} on top of each other for j = 1, 2, …, n (this gives the adjugate matrix for A). It was shown that L_{(j)} ⋅ A = (0 … 0 det(A) 0 … 0) where det(A) appears at the position j; from this it follows thatM ⋅ A = det(A)I_{n}. Therefore
completing the proof.