Module docstring
{"# The general linear group of linear maps
The general linear group is defined to be the group of invertible linear maps from M to itself.
See also Matrix.GeneralLinearGroup
Main definitions
LinearMap.GeneralLinearGroup
"}
{"# The general linear group of linear maps
The general linear group is defined to be the group of invertible linear maps from M to itself.
See also Matrix.GeneralLinearGroup
LinearMap.GeneralLinearGroup"}
LinearMap.GeneralLinearGroup
abbrev
/-- The group of invertible linear maps from `M` to itself -/
abbrev GeneralLinearGroup :=
(M →ₗ[R] M)ˣ
LinearMap.GeneralLinearGroup.toLinearEquiv
definition
(f : GeneralLinearGroup R M) : M ≃ₗ[R] M
/-- An invertible linear map `f` determines an equivalence from `M` to itself. -/
def toLinearEquiv (f : GeneralLinearGroup R M) : M ≃ₗ[R] M :=
{ f.val with
invFun := f.inv.toFun
left_inv := fun m ↦ show (f.inv * f.val) m = m by rw [f.inv_val]; simp
right_inv := fun m ↦ show (f.val * f.inv) m = m by rw [f.val_inv]; simp }
LinearMap.GeneralLinearGroup.ofLinearEquiv
definition
(f : M ≃ₗ[R] M) : GeneralLinearGroup R M
/-- An equivalence from `M` to itself determines an invertible linear map. -/
def ofLinearEquiv (f : M ≃ₗ[R] M) : GeneralLinearGroup R M where
val := f
inv := (f.symm : M →ₗ[R] M)
val_inv := LinearMap.ext fun _ ↦ f.apply_symm_apply _
inv_val := LinearMap.ext fun _ ↦ f.symm_apply_apply _
LinearMap.GeneralLinearGroup.generalLinearEquiv
definition
: GeneralLinearGroup R M ≃* M ≃ₗ[R] M
/-- The general linear group on `R` and `M` is multiplicatively equivalent to the type of linear
equivalences between `M` and itself. -/
def generalLinearEquiv : GeneralLinearGroupGeneralLinearGroup R M ≃* M ≃ₗ[R] M where
toFun := toLinearEquiv
invFun := ofLinearEquiv
left_inv f := by ext; rfl
right_inv f := by ext; rfl
map_mul' x y := by ext; rfl
LinearMap.GeneralLinearGroup.generalLinearEquiv_to_linearMap
theorem
(f : GeneralLinearGroup R M) : (generalLinearEquiv R M f : M →ₗ[R] M) = f
@[simp]
theorem generalLinearEquiv_to_linearMap (f : GeneralLinearGroup R M) :
(generalLinearEquiv R M f : M →ₗ[R] M) = f := by ext; rfl
LinearMap.GeneralLinearGroup.coeFn_generalLinearEquiv
theorem
(f : GeneralLinearGroup R M) : (generalLinearEquiv R M f) = (f : M → M)
@[simp]
theorem coeFn_generalLinearEquiv (f : GeneralLinearGroup R M) :
(generalLinearEquiv R M f) = (f : M → M) := rfl