# Documentation

Mathlib.Data.Matrix.Invertible

# Extra lemmas about invertible matrices #

A few of the Invertible lemmas generalize to multiplication of rectangular matrices.

For lemmas about the matrix inverse in terms of the determinant and adjugate, see Matrix.inv in LinearAlgebra/Matrix/NonsingularInverse.lean.

## Main results #

• Matrix.invertibleConjTranspose
• Matrix.invertibleTranspose
• Matrix.isUnit_conjTranpose
• Matrix.isUnit_tranpose
theorem Matrix.invOf_mul_self_assoc {m : Type u_1} {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) (B : Matrix n m α) [] :
A * (A * B) = B

A copy of invOf_mul_self_assoc for rectangular matrices.

theorem Matrix.mul_invOf_self_assoc {m : Type u_1} {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) (B : Matrix n m α) [] :
A * (A * B) = B

A copy of mul_invOf_self_assoc for rectangular matrices.

theorem Matrix.mul_invOf_mul_self_cancel {m : Type u_1} {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix m n α) (B : Matrix n n α) [] :
A * B * B = A

A copy of mul_invOf_mul_self_cancel for rectangular matrices.

theorem Matrix.mul_mul_invOf_self_cancel {m : Type u_1} {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix m n α) (B : Matrix n n α) [] :
A * B * B = A

A copy of mul_mul_invOf_self_cancel for rectangular matrices.

instance Matrix.invertibleConjTranspose {n : Type u_2} {α : Type u_3} [] [] [] [] (A : Matrix n n α) [] :

The conjugate transpose of an invertible matrix is invertible.

theorem Matrix.conjTranspose_invOf {n : Type u_2} {α : Type u_3} [] [] [] [] (A : Matrix n n α) [] :
def Matrix.invertibleOfInvertibleConjTranspose {n : Type u_2} {α : Type u_3} [] [] [] [] (A : Matrix n n α) :

A matrix is invertible if the conjugate transpose is invertible.

Instances For
@[simp]
theorem Matrix.isUnit_conjTranspose {n : Type u_2} {α : Type u_3} [] [] [] [] (A : Matrix n n α) :
instance Matrix.invertibleTranspose {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) [] :

The transpose of an invertible matrix is invertible.

theorem Matrix.transpose_invOf {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) [] [] :
def Matrix.invertibleOfInvertibleTranspose {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) [] :

Aᵀ is invertible when A is.

Instances For
@[simp]
theorem Matrix.transposeInvertibleEquivInvertible_apply {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) [] :
@[simp]
theorem Matrix.transposeInvertibleEquivInvertible_symm_apply {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) [] :
inst✝ =
def Matrix.transposeInvertibleEquivInvertible {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) :

Together Matrix.invertibleTranspose and Matrix.invertibleOfInvertibleTranspose form an equivalence, although both sides of the equiv are subsingleton anyway.

Instances For
@[simp]
theorem Matrix.isUnit_transpose {n : Type u_2} {α : Type u_3} [] [] [] (A : Matrix n n α) :