File: Mathlib/Data/Matrix/Invertible.lean

full_name: Matrix.invOf_mul_self_assoc
code: /-- A copy of `invOf_mul_self_assoc` for rectangular matrices. -/
protected theorem invOf_mul_self_assoc (A : Matrix n n α) (B : Matrix n m α) [Invertible A] :
    ⅟ A * (A * B) = B 
goal: ⅟A * (A * B) = B

full_name: Matrix.mul_invOf_self_assoc
code: /-- A copy of `mul_invOf_self_assoc` for rectangular matrices. -/
protected theorem mul_invOf_self_assoc (A : Matrix n n α) (B : Matrix n m α) [Invertible A] :
    A * (⅟ A * B) = B 
goal: A * (⅟A * B) = B

full_name: Matrix.mul_invOf_mul_self_cancel
code: /-- A copy of `mul_invOf_mul_self_cancel` for rectangular matrices. -/
protected theorem mul_invOf_mul_self_cancel (A : Matrix m n α) (B : Matrix n n α) [Invertible B] :
    A * ⅟ B * B = A 
goal: A * ⅟B * B = A

full_name: Matrix.mul_mul_invOf_self_cancel
code: /-- A copy of `mul_mul_invOf_self_cancel` for rectangular matrices. -/
protected theorem mul_mul_invOf_self_cancel (A : Matrix m n α) (B : Matrix n n α) [Invertible B] :
    A * B * ⅟ B = A 
goal: A * B * ⅟B = A

full_name: Matrix.invertibleConjTranspose
code: /-- The conjugate transpose of an invertible matrix is invertible. -/
instance invertibleConjTranspose [Invertible A] : Invertible Aᴴ 
goal: Invertible Aᴴ

full_name: Matrix.conjTranspose_invOf
code: lemma conjTranspose_invOf [Invertible A] [Invertible Aᴴ] : (⅟A)ᴴ = ⅟(Aᴴ) 
goal: (⅟A)ᴴ = ⅟Aᴴ

full_name: Matrix.invertibleOfInvertibleConjTranspose
code: /-- A matrix is invertible if the conjugate transpose is invertible. -/
def invertibleOfInvertibleConjTranspose [Invertible Aᴴ] : Invertible A 
goal: Invertible A

full_name: Matrix.isUnit_conjTranspose
code: @[simp] lemma isUnit_conjTranspose : IsUnit Aᴴ ↔ IsUnit A 
goal: IsUnit Aᴴ ↔ IsUnit A

full_name: Matrix.invertibleTranspose
code: /-- The transpose of an invertible matrix is invertible. -/
instance invertibleTranspose [Invertible A] : Invertible Aᵀ 
goal: Invertible Aᵀ

full_name: Matrix.transpose_invOf
code: lemma transpose_invOf [Invertible A] [Invertible Aᵀ] : (⅟A)ᵀ = ⅟(Aᵀ) 
goal: (⅟A)ᵀ = ⅟Aᵀ

full_name: Matrix.invertibleOfInvertibleTranspose
code: /-- `Aᵀ` is invertible when `A` is. -/
def invertibleOfInvertibleTranspose [Invertible Aᵀ] : Invertible A 
goal: Invertible A

full_name: Matrix.transposeInvertibleEquivInvertible
code: /-- Together `Matrix.invertibleTranspose` and `Matrix.invertibleOfInvertibleTranspose` form an
equivalence, although both sides of the equiv are subsingleton anyway. -/
@[simps]
def transposeInvertibleEquivInvertible : Invertible Aᵀ ≃ Invertible A 
goal: Invertible Aᵀ ≃ Invertible A

full_name: Matrix.transposeInvertibleEquivInvertible_apply
code: /-- Together `Matrix.invertibleTranspose` and `Matrix.invertibleOfInvertibleTranspose` form an
equivalence, although both sides of the equiv are subsingleton anyway. -/
@[simps]
def transposeInvertibleEquivInvertible : Invertible Aᵀ ≃ Invertible A 
goal: A.transposeInvertibleEquivInvertible inst✝ = A.invertibleOfInvertibleTranspose

full_name: Matrix.transposeInvertibleEquivInvertible_symm_apply
code: /-- Together `Matrix.invertibleTranspose` and `Matrix.invertibleOfInvertibleTranspose` form an
equivalence, although both sides of the equiv are subsingleton anyway. -/
@[simps]
def transposeInvertibleEquivInvertible : Invertible Aᵀ ≃ Invertible A 
goal: A.transposeInvertibleEquivInvertible.symm inst✝ = A.invertibleTranspose

full_name: Matrix.isUnit_transpose
code: @[simp] lemma isUnit_transpose : IsUnit Aᵀ ↔ IsUnit A 
goal: IsUnit Aᵀ ↔ IsUnit A