linear_algebra.unitary_group
⟷
Mathlib.LinearAlgebra.UnitaryGroup
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -81,7 +81,7 @@ theorem mem_unitaryGroup_iff {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n
theorem mem_unitaryGroup_iff' {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
-/
@@ -280,7 +280,7 @@ theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Shing Tak Lam. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Shing Tak Lam
-/
-import Mathbin.LinearAlgebra.GeneralLinearGroup
-import Mathbin.LinearAlgebra.Matrix.ToLin
-import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
-import Mathbin.Algebra.Star.Unitary
+import LinearAlgebra.GeneralLinearGroup
+import LinearAlgebra.Matrix.ToLin
+import LinearAlgebra.Matrix.NonsingularInverse
+import Algebra.Star.Unitary
#align_import linear_algebra.unitary_group from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Shing Tak Lam. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Shing Tak Lam
-
-! This file was ported from Lean 3 source module linear_algebra.unitary_group
-! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.GeneralLinearGroup
import Mathbin.LinearAlgebra.Matrix.ToLin
import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
import Mathbin.Algebra.Star.Unitary
+#align_import linear_algebra.unitary_group from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
+
/-!
# The Unitary Group
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -58,11 +58,13 @@ variable (n : Type u) [DecidableEq n] [Fintype n]
variable (α : Type v) [CommRing α] [StarRing α]
+#print Matrix.unitaryGroup /-
/-- `unitary_group n` is the group of `n` by `n` matrices where the star-transpose is the inverse.
-/
abbrev unitaryGroup :=
unitary (Matrix n n α)
#align matrix.unitary_group Matrix.unitaryGroup
+-/
end
@@ -70,34 +72,45 @@ variable {n : Type u} [DecidableEq n] [Fintype n]
variable {α : Type v} [CommRing α] [StarRing α]
+#print Matrix.mem_unitaryGroup_iff /-
theorem mem_unitaryGroup_iff {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ A * star A = 1 :=
by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iff
+-/
+#print Matrix.mem_unitaryGroup_iff' /-
theorem mem_unitaryGroup_iff' {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
+-/
+#print Matrix.det_of_mem_unitary /-
theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n α) :
A.det ∈ unitary α := by
constructor
· simpa [star, det_transpose] using congr_arg det hA.1
· simpa [star, det_transpose] using congr_arg det hA.2
#align matrix.det_of_mem_unitary Matrix.det_of_mem_unitary
+-/
namespace UnitaryGroup
+#print Matrix.UnitaryGroup.coeMatrix /-
instance coeMatrix : Coe (unitaryGroup n α) (Matrix n n α) :=
⟨Subtype.val⟩
#align matrix.unitary_group.coe_matrix Matrix.UnitaryGroup.coeMatrix
+-/
+#print Matrix.UnitaryGroup.coeFun /-
instance coeFun : CoeFun (unitaryGroup n α) fun _ => n → n → α where coe A := A.val
#align matrix.unitary_group.coe_fun Matrix.UnitaryGroup.coeFun
+-/
+#print Matrix.UnitaryGroup.toLin' /-
/-- `to_lin' A` is matrix multiplication of vectors by `A`, as a linear map.
After the group structure on `unitary_group n` is defined,
@@ -106,67 +119,91 @@ we show in `to_linear_equiv` that this gives a linear equivalence.
def toLin' (A : unitaryGroup n α) :=
Matrix.toLin' A
#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'
+-/
+#print Matrix.UnitaryGroup.ext_iff /-
theorem ext_iff (A B : unitaryGroup n α) : A = B ↔ ∀ i j, A i j = B i j :=
Subtype.ext_iff_val.trans ⟨fun h i j => congr_fun (congr_fun h i) j, Matrix.ext⟩
#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iff
+-/
+#print Matrix.UnitaryGroup.ext /-
@[ext]
theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
(UnitaryGroup.ext_iff A B).mpr
#align matrix.unitary_group.ext Matrix.UnitaryGroup.ext
+-/
+#print Matrix.UnitaryGroup.star_mul_self /-
@[simp]
theorem star_mul_self (A : unitaryGroup n α) : star A ⬝ A = 1 :=
A.2.1
#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_self
+-/
section CoeLemmas
variable (A B : unitaryGroup n α)
+#print Matrix.UnitaryGroup.inv_val /-
@[simp]
theorem inv_val : ↑A⁻¹ = (star A : Matrix n n α) :=
rfl
#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_val
+-/
+#print Matrix.UnitaryGroup.inv_apply /-
@[simp]
theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) :=
rfl
#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_apply
+-/
+#print Matrix.UnitaryGroup.mul_val /-
@[simp]
theorem mul_val : ↑(A * B) = A ⬝ B :=
rfl
#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_val
+-/
+#print Matrix.UnitaryGroup.mul_apply /-
@[simp]
theorem mul_apply : ⇑(A * B) = A ⬝ B :=
rfl
#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_apply
+-/
+#print Matrix.UnitaryGroup.one_val /-
@[simp]
theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_val
+-/
+#print Matrix.UnitaryGroup.one_apply /-
@[simp]
theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_apply
+-/
+#print Matrix.UnitaryGroup.toLin'_mul /-
@[simp]
theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
Matrix.toLin'_mul A B
#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mul
+-/
+#print Matrix.UnitaryGroup.toLin'_one /-
@[simp]
theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
Matrix.toLin'_one
#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_one
+-/
end CoeLemmas
+#print Matrix.UnitaryGroup.toLinearEquiv /-
/-- `to_linear_equiv A` is matrix multiplication of vectors by `A`, as a linear equivalence. -/
def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
{ Matrix.toLin' A with
@@ -180,30 +217,41 @@ def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
(toLin' A).comp (toLin' A⁻¹) x = toLin' (A * A⁻¹) x := by rw [← to_lin'_mul]
_ = x := by rw [mul_right_inv, to_lin'_one, id_apply] }
#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquiv
+-/
+#print Matrix.UnitaryGroup.toGL /-
/-- `to_GL` is the map from the unitary group to the general linear group -/
def toGL (A : unitaryGroup n α) : GeneralLinearGroup α (n → α) :=
GeneralLinearGroup.ofLinearEquiv (toLinearEquiv A)
#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGL
+-/
+#print Matrix.UnitaryGroup.coe_toGL /-
theorem coe_toGL (A : unitaryGroup n α) : ↑(toGL A) = toLin' A :=
rfl
#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGL
+-/
+#print Matrix.UnitaryGroup.toGL_one /-
@[simp]
theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 := by ext1 v i; rw [coe_to_GL, to_lin'_one]; rfl
#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_one
+-/
+#print Matrix.UnitaryGroup.toGL_mul /-
@[simp]
theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B := by ext1 v i;
rw [coe_to_GL, to_lin'_mul]; rfl
#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mul
+-/
+#print Matrix.UnitaryGroup.embeddingGL /-
/-- `unitary_group.embedding_GL` is the embedding from `unitary_group n α`
to `general_linear_group n α`. -/
def embeddingGL : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
⟨fun A => toGL A, by simp, by simp⟩
#align matrix.unitary_group.embedding_GL Matrix.UnitaryGroup.embeddingGL
+-/
end UnitaryGroup
@@ -213,25 +261,31 @@ variable (n) (β : Type v) [CommRing β]
attribute [local instance] starRingOfComm
+#print Matrix.orthogonalGroup /-
/-- `orthogonal_group n` is the group of `n` by `n` matrices where the transpose is the inverse.
-/
abbrev orthogonalGroup :=
unitaryGroup n β
#align matrix.orthogonal_group Matrix.orthogonalGroup
+-/
+#print Matrix.mem_orthogonalGroup_iff /-
theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ A * star A = 1 :=
by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iff
+-/
+#print Matrix.mem_orthogonalGroup_iff' /-
theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'
+-/
end OrthogonalGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -175,12 +175,10 @@ def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
calc
(toLin' A⁻¹).comp (toLin' A) x = (toLin' (A⁻¹ * A)) x := by rw [← to_lin'_mul]
_ = x := by rw [mul_left_inv, to_lin'_one, id_apply]
-
right_inv := fun x =>
calc
(toLin' A).comp (toLin' A⁻¹) x = toLin' (A * A⁻¹) x := by rw [← to_lin'_mul]
- _ = x := by rw [mul_right_inv, to_lin'_one, id_apply]
- }
+ _ = x := by rw [mul_right_inv, to_lin'_one, id_apply] }
#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquiv
/-- `to_GL` is the map from the unitary group to the general linear group -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -79,7 +79,7 @@ theorem mem_unitaryGroup_iff {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n
theorem mem_unitaryGroup_iff' {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n α) :
@@ -232,7 +232,7 @@ theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'
end OrthogonalGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -50,7 +50,7 @@ namespace Matrix
open LinearMap
-open Matrix
+open scoped Matrix
section
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -58,12 +58,6 @@ variable (n : Type u) [DecidableEq n] [Fintype n]
variable (α : Type v) [CommRing α] [StarRing α]
-/- warning: matrix.unitary_group -> Matrix.unitaryGroup is a dubious translation:
-lean 3 declaration is
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (α : Type.{u2}) [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))
-but is expected to have type
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (α : Type.{u2}) [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group Matrix.unitaryGroupₓ'. -/
/-- `unitary_group n` is the group of `n` by `n` matrices where the star-transpose is the inverse.
-/
abbrev unitaryGroup :=
@@ -76,36 +70,18 @@ variable {n : Type u} [DecidableEq n] [Fintype n]
variable {α : Type v} [CommRing α] [StarRing α]
-/- warning: matrix.mem_unitary_group_iff -> Matrix.mem_unitaryGroup_iff is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iffₓ'. -/
theorem mem_unitaryGroup_iff {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ A * star A = 1 :=
by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iff
-/- warning: matrix.mem_unitary_group_iff' -> Matrix.mem_unitaryGroup_iff' is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'ₓ'. -/
theorem mem_unitaryGroup_iff' {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
-/- warning: matrix.det_of_mem_unitary -> Matrix.det_of_mem_unitary is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (Membership.Mem.{u2, u2} α (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)))) α (Submonoid.setLike.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A) (unitary.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)) (StarRing.toStarSemigroup.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (Membership.mem.{u2, u2} α (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) α (Submonoid.instSetLikeSubmonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A) (unitary.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (StarRing.toStarSemigroup.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))
-Case conversion may be inaccurate. Consider using '#align matrix.det_of_mem_unitary Matrix.det_of_mem_unitaryₓ'. -/
theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n α) :
A.det ∈ unitary α := by
constructor
@@ -115,31 +91,13 @@ theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n
namespace UnitaryGroup
-/- warning: matrix.unitary_group.coe_matrix -> Matrix.UnitaryGroup.coeMatrix is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α)
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Matrix.{u1, u1, u2} n n α)
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_matrix Matrix.UnitaryGroup.coeMatrixₓ'. -/
instance coeMatrix : Coe (unitaryGroup n α) (Matrix n n α) :=
⟨Subtype.val⟩
#align matrix.unitary_group.coe_matrix Matrix.UnitaryGroup.coeMatrix
-/- warning: matrix.unitary_group.coe_fun -> Matrix.UnitaryGroup.coeFun is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], CoeFun.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α)
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], CoeFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (fun (_x : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) => n -> n -> α)
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_fun Matrix.UnitaryGroup.coeFunₓ'. -/
instance coeFun : CoeFun (unitaryGroup n α) fun _ => n → n → α where coe A := A.val
#align matrix.unitary_group.coe_fun Matrix.UnitaryGroup.coeFun
-/- warning: matrix.unitary_group.to_lin' -> Matrix.UnitaryGroup.toLin' is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'ₓ'. -/
/-- `to_lin' A` is matrix multiplication of vectors by `A`, as a linear map.
After the group structure on `unitary_group n` is defined,
@@ -149,24 +107,15 @@ def toLin' (A : unitaryGroup n α) :=
Matrix.toLin' A
#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'
-/- warning: matrix.unitary_group.ext_iff -> Matrix.UnitaryGroup.ext_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iffₓ'. -/
theorem ext_iff (A B : unitaryGroup n α) : A = B ↔ ∀ i j, A i j = B i j :=
Subtype.ext_iff_val.trans ⟨fun h i j => congr_fun (congr_fun h i) j, Matrix.ext⟩
#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iff
-/- warning: matrix.unitary_group.ext -> Matrix.UnitaryGroup.ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext Matrix.UnitaryGroup.extₓ'. -/
@[ext]
theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
(UnitaryGroup.ext_iff A B).mpr
#align matrix.unitary_group.ext Matrix.UnitaryGroup.ext
-/- warning: matrix.unitary_group.star_mul_self -> Matrix.UnitaryGroup.star_mul_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_selfₓ'. -/
@[simp]
theorem star_mul_self (A : unitaryGroup n α) : star A ⬝ A = 1 :=
A.2.1
@@ -176,65 +125,41 @@ section CoeLemmas
variable (A B : unitaryGroup n α)
-/- warning: matrix.unitary_group.inv_val -> Matrix.UnitaryGroup.inv_val is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_valₓ'. -/
@[simp]
theorem inv_val : ↑A⁻¹ = (star A : Matrix n n α) :=
rfl
#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_val
-/- warning: matrix.unitary_group.inv_apply -> Matrix.UnitaryGroup.inv_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_applyₓ'. -/
@[simp]
theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) :=
rfl
#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_apply
-/- warning: matrix.unitary_group.mul_val -> Matrix.UnitaryGroup.mul_val is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_valₓ'. -/
@[simp]
theorem mul_val : ↑(A * B) = A ⬝ B :=
rfl
#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_val
-/- warning: matrix.unitary_group.mul_apply -> Matrix.UnitaryGroup.mul_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_applyₓ'. -/
@[simp]
theorem mul_apply : ⇑(A * B) = A ⬝ B :=
rfl
#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_apply
-/- warning: matrix.unitary_group.one_val -> Matrix.UnitaryGroup.one_val is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_valₓ'. -/
@[simp]
theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_val
-/- warning: matrix.unitary_group.one_apply -> Matrix.UnitaryGroup.one_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_applyₓ'. -/
@[simp]
theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_apply
-/- warning: matrix.unitary_group.to_lin'_mul -> Matrix.UnitaryGroup.toLin'_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mulₓ'. -/
@[simp]
theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
Matrix.toLin'_mul A B
#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mul
-/- warning: matrix.unitary_group.to_lin'_one -> Matrix.UnitaryGroup.toLin'_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_oneₓ'. -/
@[simp]
theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
Matrix.toLin'_one
@@ -242,12 +167,6 @@ theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
end CoeLemmas
-/- warning: matrix.unitary_group.to_linear_equiv -> Matrix.UnitaryGroup.toLinearEquiv is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearEquiv.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.UnitaryGroup.toLinearEquiv._proof_1.{u2} α _inst_3) (Matrix.UnitaryGroup.toLinearEquiv._proof_2.{u2} α _inst_3) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) -> (LinearEquiv.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomInvPair.ids.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (RingHomInvPair.ids.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1017 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1017 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquivₓ'. -/
/-- `to_linear_equiv A` is matrix multiplication of vectors by `A`, as a linear equivalence. -/
def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
{ Matrix.toLin' A with
@@ -264,42 +183,24 @@ def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
}
#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquiv
-/- warning: matrix.unitary_group.to_GL -> Matrix.UnitaryGroup.toGL is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) -> (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGLₓ'. -/
/-- `to_GL` is the map from the unitary group to the general linear group -/
def toGL (A : unitaryGroup n α) : GeneralLinearGroup α (n → α) :=
GeneralLinearGroup.ofLinearEquiv (toLinearEquiv A)
#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGL
-/- warning: matrix.unitary_group.coe_to_GL -> Matrix.UnitaryGroup.coe_toGL is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGLₓ'. -/
theorem coe_toGL (A : unitaryGroup n α) : ↑(toGL A) = toLin' A :=
rfl
#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGL
-/- warning: matrix.unitary_group.to_GL_one -> Matrix.UnitaryGroup.toGL_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_oneₓ'. -/
@[simp]
theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 := by ext1 v i; rw [coe_to_GL, to_lin'_one]; rfl
#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_one
-/- warning: matrix.unitary_group.to_GL_mul -> Matrix.UnitaryGroup.toGL_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mulₓ'. -/
@[simp]
theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B := by ext1 v i;
rw [coe_to_GL, to_lin'_mul]; rfl
#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mul
-/- warning: matrix.unitary_group.embedding_GL -> Matrix.UnitaryGroup.embeddingGL is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.embedding_GL Matrix.UnitaryGroup.embeddingGLₓ'. -/
/-- `unitary_group.embedding_GL` is the embedding from `unitary_group n α`
to `general_linear_group n α`. -/
def embeddingGL : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
@@ -314,24 +215,12 @@ variable (n) (β : Type v) [CommRing β]
attribute [local instance] starRingOfComm
-/- warning: matrix.orthogonal_group -> Matrix.orthogonalGroup is a dubious translation:
-lean 3 declaration is
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))
-but is expected to have type
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))
-Case conversion may be inaccurate. Consider using '#align matrix.orthogonal_group Matrix.orthogonalGroupₓ'. -/
/-- `orthogonal_group n` is the group of `n` by `n` matrices where the transpose is the inverse.
-/
abbrev orthogonalGroup :=
unitaryGroup n β
#align matrix.orthogonal_group Matrix.orthogonalGroup
-/- warning: matrix.mem_orthogonal_group_iff -> Matrix.mem_orthogonalGroup_iff is a dubious translation:
-lean 3 declaration is
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5)))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasMul.{u2, u1} n β _inst_2 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (CommRing.toRing.{u2} β _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toAddCommGroup.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasStar.{u2, u1} n β (InvolutiveStar.toHasStar.{u2} β (StarAddMonoid.toHasInvolutiveStar.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasOne.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))))) (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5))))))))))
-but is expected to have type
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instMulMatrix.{u2, u1} n β _inst_2 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instStarMatrix.{u2, u1} n β (InvolutiveStar.toStar.{u2} β (StarAddMonoid.toInvolutiveStar.{u2} β (AddMonoidWithOne.toAddMonoid.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (Ring.toAddGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} β (CommRing.toNonUnitalCommRing.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.one.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} β (CommSemiring.toCommMonoidWithZero.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (Semiring.toOne.{u2} β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iffₓ'. -/
theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ A * star A = 1 :=
by
@@ -339,12 +228,6 @@ theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iff
-/- warning: matrix.mem_orthogonal_group_iff' -> Matrix.mem_orthogonalGroup_iff' is a dubious translation:
-lean 3 declaration is
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5)))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasMul.{u2, u1} n β _inst_2 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (CommRing.toRing.{u2} β _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toAddCommGroup.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasStar.{u2, u1} n β (InvolutiveStar.toHasStar.{u2} β (StarAddMonoid.toHasInvolutiveStar.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasOne.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))))) (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5))))))))))
-but is expected to have type
- forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instMulMatrix.{u2, u1} n β _inst_2 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instStarMatrix.{u2, u1} n β (InvolutiveStar.toStar.{u2} β (StarAddMonoid.toInvolutiveStar.{u2} β (AddMonoidWithOne.toAddMonoid.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (Ring.toAddGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} β (CommRing.toNonUnitalCommRing.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.one.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} β (CommSemiring.toCommMonoidWithZero.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (Semiring.toOne.{u2} β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'ₓ'. -/
theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -286,22 +286,15 @@ theorem coe_toGL (A : unitaryGroup n α) : ↑(toGL A) = toLin' A :=
<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_oneₓ'. -/
@[simp]
-theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 :=
- by
- ext1 v i
- rw [coe_to_GL, to_lin'_one]
- rfl
+theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 := by ext1 v i; rw [coe_to_GL, to_lin'_one]; rfl
#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_one
/- warning: matrix.unitary_group.to_GL_mul -> Matrix.UnitaryGroup.toGL_mul is a dubious translation:
<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mulₓ'. -/
@[simp]
-theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B :=
- by
- ext1 v i
- rw [coe_to_GL, to_lin'_mul]
- rfl
+theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B := by ext1 v i;
+ rw [coe_to_GL, to_lin'_mul]; rfl
#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mul
/- warning: matrix.unitary_group.embedding_GL -> Matrix.UnitaryGroup.embeddingGL is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -150,20 +150,14 @@ def toLin' (A : unitaryGroup n α) :=
#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'
/- warning: matrix.unitary_group.ext_iff -> Matrix.UnitaryGroup.ext_iff is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Iff (Eq.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A B) (forall (i : n) (j : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A i j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B i j))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Iff (Eq.{max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B) (forall (i : n) (j : n), Eq.{succ u2} α (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) A i j) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) B i j))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iffₓ'. -/
theorem ext_iff (A B : unitaryGroup n α) : A = B ↔ ∀ i j, A i j = B i j :=
Subtype.ext_iff_val.trans ⟨fun h i j => congr_fun (congr_fun h i) j, Matrix.ext⟩
#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iff
/- warning: matrix.unitary_group.ext -> Matrix.UnitaryGroup.ext is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), (forall (i : n) (j : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A i j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B i j)) -> (Eq.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A B)
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (forall (i : n) (j : n), Eq.{succ u2} α (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) A i j) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) B i j)) -> (Eq.{max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext Matrix.UnitaryGroup.extₓ'. -/
@[ext]
theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
@@ -171,10 +165,7 @@ theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
#align matrix.unitary_group.ext Matrix.UnitaryGroup.ext
/- warning: matrix.unitary_group.star_mul_self -> Matrix.UnitaryGroup.star_mul_self is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A)) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_selfₓ'. -/
@[simp]
theorem star_mul_self (A : unitaryGroup n α) : star A ⬝ A = 1 :=
@@ -186,10 +177,7 @@ section CoeLemmas
variable (A B : unitaryGroup n α)
/- warning: matrix.unitary_group.inv_val -> Matrix.UnitaryGroup.inv_val is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (DivInvMonoid.toHasInv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Group.toDivInvMonoid.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (unitary.group.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.starRing.{u2, u1} n α _inst_2 (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Inv.inv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (InvOneClass.toInv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Group.toDivisionMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (unitary.instGroupSubtypeMemSubmonoidToMulOneClassInstMembershipInstSetLikeSubmonoidUnitary.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.instStarRingMatrixNonUnitalSemiring.{u2, u1} n α _inst_2 (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_valₓ'. -/
@[simp]
theorem inv_val : ↑A⁻¹ = (star A : Matrix n n α) :=
@@ -197,10 +185,7 @@ theorem inv_val : ↑A⁻¹ = (star A : Matrix n n α) :=
#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_val
/- warning: matrix.unitary_group.inv_apply -> Matrix.UnitaryGroup.inv_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (DivInvMonoid.toHasInv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Group.toDivInvMonoid.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (unitary.group.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.starRing.{u2, u1} n α _inst_2 (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (Inv.inv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (InvOneClass.toInv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Group.toDivisionMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (unitary.instGroupSubtypeMemSubmonoidToMulOneClassInstMembershipInstSetLikeSubmonoidUnitary.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.instStarRingMatrixNonUnitalSemiring.{u2, u1} n α _inst_2 (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_applyₓ'. -/
@[simp]
theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) :=
@@ -208,10 +193,7 @@ theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) :=
#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_apply
/- warning: matrix.unitary_group.mul_val -> Matrix.UnitaryGroup.mul_val is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) B))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_valₓ'. -/
@[simp]
theorem mul_val : ↑(A * B) = A ⬝ B :=
@@ -219,10 +201,7 @@ theorem mul_val : ↑(A * B) = A ⬝ B :=
#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_val
/- warning: matrix.unitary_group.mul_apply -> Matrix.UnitaryGroup.mul_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) B))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_applyₓ'. -/
@[simp]
theorem mul_apply : ⇑(A * B) = A ⬝ B :=
@@ -230,10 +209,7 @@ theorem mul_apply : ⇑(A * B) = A ⬝ B :=
#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_apply
/- warning: matrix.unitary_group.one_val -> Matrix.UnitaryGroup.one_val is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_valₓ'. -/
@[simp]
theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
@@ -241,10 +217,7 @@ theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_val
/- warning: matrix.unitary_group.one_apply -> Matrix.UnitaryGroup.one_apply is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_applyₓ'. -/
@[simp]
theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
@@ -252,10 +225,7 @@ theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_apply
/- warning: matrix.unitary_group.to_lin'_mul -> Matrix.UnitaryGroup.toLin'_mul is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.right_ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mulₓ'. -/
@[simp]
theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
@@ -263,10 +233,7 @@ theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mul
/- warning: matrix.unitary_group.to_lin'_one -> Matrix.UnitaryGroup.toLin'_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_oneₓ'. -/
@[simp]
theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
@@ -309,20 +276,14 @@ def toGL (A : unitaryGroup n α) : GeneralLinearGroup α (n → α) :=
#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGL
/- warning: matrix.unitary_group.coe_to_GL -> Matrix.UnitaryGroup.coe_toGL is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.hasCoe.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.val.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGLₓ'. -/
theorem coe_toGL (A : unitaryGroup n α) : ↑(toGL A) = toLin' A :=
rfl
#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGL
/- warning: matrix.unitary_group.to_GL_one -> Matrix.UnitaryGroup.toGL_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) 1 (One.one.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (MulOneClass.toHasOne.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (InvOneClass.toOne.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Group.toDivisionMonoid.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.instGroupUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_oneₓ'. -/
@[simp]
theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 :=
@@ -333,10 +294,7 @@ theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 :=
#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_one
/- warning: matrix.unitary_group.to_GL_mul -> Matrix.UnitaryGroup.toGL_mul is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (instHMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (MulOneClass.toHasMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (instHMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (MulOneClass.toMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.instMulOneClassUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mulₓ'. -/
@[simp]
theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B :=
@@ -347,10 +305,7 @@ theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B :=
#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mul
/- warning: matrix.unitary_group.embedding_GL -> Matrix.UnitaryGroup.embeddingGL is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], MonoidHom.{max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Submonoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))
-but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], MonoidHom.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Submonoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Units.instMulOneClassUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.embedding_GL Matrix.UnitaryGroup.embeddingGLₓ'. -/
/-- `unitary_group.embedding_GL` is the embedding from `unitary_group n α`
to `general_linear_group n α`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -138,7 +138,7 @@ instance coeFun : CoeFun (unitaryGroup n α) fun _ => n → n → α where coe A
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'ₓ'. -/
/-- `to_lin' A` is matrix multiplication of vectors by `A`, as a linear map.
@@ -255,7 +255,7 @@ theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.right_ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mulₓ'. -/
@[simp]
theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
@@ -266,7 +266,7 @@ theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
lean 3 declaration is
forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
but is expected to have type
- forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_oneₓ'. -/
@[simp]
theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Shing Tak Lam
! This file was ported from Lean 3 source module linear_algebra.unitary_group
-! leanprover-community/mathlib commit 2705404e701abc6b3127da906f40bae062a169c9
+! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.Algebra.Star.Unitary
/-!
# The Unitary Group
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines elements of the unitary group `unitary_group n α`, where `α` is a `star_ring`.
This consists of all `n` by `n` matrices with entries in `α` such that the star-transpose is its
inverse. In addition, we define the group structure on `unitary_group n α`, and the embedding into
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -55,6 +55,12 @@ variable (n : Type u) [DecidableEq n] [Fintype n]
variable (α : Type v) [CommRing α] [StarRing α]
+/- warning: matrix.unitary_group -> Matrix.unitaryGroup is a dubious translation:
+lean 3 declaration is
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (α : Type.{u2}) [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))
+but is expected to have type
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (α : Type.{u2}) [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group Matrix.unitaryGroupₓ'. -/
/-- `unitary_group n` is the group of `n` by `n` matrices where the star-transpose is the inverse.
-/
abbrev unitaryGroup :=
@@ -67,18 +73,36 @@ variable {n : Type u} [DecidableEq n] [Fintype n]
variable {α : Type v} [CommRing α] [StarRing α]
+/- warning: matrix.mem_unitary_group_iff -> Matrix.mem_unitaryGroup_iff is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iffₓ'. -/
theorem mem_unitaryGroup_iff {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ A * star A = 1 :=
by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iff
+/- warning: matrix.mem_unitary_group_iff' -> Matrix.mem_unitaryGroup_iff' is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasMul.{u2, u1} n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (Matrix.{u1, u1, u2} n n α) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instMulMatrix.{u2, u1} n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'ₓ'. -/
theorem mem_unitaryGroup_iff' {A : Matrix n n α} : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 :=
by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
rwa [mul_eq_mul, mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
+/- warning: matrix.det_of_mem_unitary -> Matrix.det_of_mem_unitary is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} α _inst_3)))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (Membership.Mem.{u2, u2} α (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)))) α (Submonoid.setLike.{u2} α (Monoid.toMulOneClass.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A) (unitary.{u2} α (Ring.toMonoid.{u2} α (CommRing.toRing.{u2} α _inst_3)) (StarRing.toStarSemigroup.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] {A : Matrix.{u1, u1, u2} n n α}, (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (Membership.mem.{u2, u2} α (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) α (Submonoid.instSetLikeSubmonoid.{u2} α (Monoid.toMulOneClass.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A) (unitary.{u2} α (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (StarRing.toStarSemigroup.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))
+Case conversion may be inaccurate. Consider using '#align matrix.det_of_mem_unitary Matrix.det_of_mem_unitaryₓ'. -/
theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n α) :
A.det ∈ unitary α := by
constructor
@@ -88,13 +112,31 @@ theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n
namespace UnitaryGroup
+/- warning: matrix.unitary_group.coe_matrix -> Matrix.UnitaryGroup.coeMatrix is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α)
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Matrix.{u1, u1, u2} n n α)
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_matrix Matrix.UnitaryGroup.coeMatrixₓ'. -/
instance coeMatrix : Coe (unitaryGroup n α) (Matrix n n α) :=
⟨Subtype.val⟩
-#align matrix.unitary_group.coe_matrix Matrix.unitaryGroup.coeMatrix
-
+#align matrix.unitary_group.coe_matrix Matrix.UnitaryGroup.coeMatrix
+
+/- warning: matrix.unitary_group.coe_fun -> Matrix.UnitaryGroup.coeFun is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], CoeFun.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α)
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], CoeFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (fun (_x : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) => n -> n -> α)
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_fun Matrix.UnitaryGroup.coeFunₓ'. -/
instance coeFun : CoeFun (unitaryGroup n α) fun _ => n → n → α where coe A := A.val
-#align matrix.unitary_group.coe_fun Matrix.unitaryGroup.coeFun
-
+#align matrix.unitary_group.coe_fun Matrix.UnitaryGroup.coeFun
+
+/- warning: matrix.unitary_group.to_lin' -> Matrix.UnitaryGroup.toLin' is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'ₓ'. -/
/-- `to_lin' A` is matrix multiplication of vectors by `A`, as a linear map.
After the group structure on `unitary_group n` is defined,
@@ -102,68 +144,140 @@ we show in `to_linear_equiv` that this gives a linear equivalence.
-/
def toLin' (A : unitaryGroup n α) :=
Matrix.toLin' A
-#align matrix.unitary_group.to_lin' Matrix.unitaryGroup.toLin'
-
+#align matrix.unitary_group.to_lin' Matrix.UnitaryGroup.toLin'
+
+/- warning: matrix.unitary_group.ext_iff -> Matrix.UnitaryGroup.ext_iff is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Iff (Eq.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A B) (forall (i : n) (j : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A i j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B i j))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Iff (Eq.{max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B) (forall (i : n) (j : n), Eq.{succ u2} α (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) A i j) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) B i j))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iffₓ'. -/
theorem ext_iff (A B : unitaryGroup n α) : A = B ↔ ∀ i j, A i j = B i j :=
Subtype.ext_iff_val.trans ⟨fun h i j => congr_fun (congr_fun h i) j, Matrix.ext⟩
-#align matrix.unitary_group.ext_iff Matrix.unitaryGroup.ext_iff
-
+#align matrix.unitary_group.ext_iff Matrix.UnitaryGroup.ext_iff
+
+/- warning: matrix.unitary_group.ext -> Matrix.UnitaryGroup.ext is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), (forall (i : n) (j : n), Eq.{succ u2} α (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A i j) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B i j)) -> (Eq.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A B)
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), (forall (i : n) (j : n), Eq.{succ u2} α (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) A i j) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) B i j)) -> (Eq.{max (succ u1) (succ u2)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.ext Matrix.UnitaryGroup.extₓ'. -/
@[ext]
theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
- (unitaryGroup.ext_iff A B).mpr
-#align matrix.unitary_group.ext Matrix.unitaryGroup.ext
-
+ (UnitaryGroup.ext_iff A B).mpr
+#align matrix.unitary_group.ext Matrix.UnitaryGroup.ext
+
+/- warning: matrix.unitary_group.star_mul_self -> Matrix.UnitaryGroup.star_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A)) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_selfₓ'. -/
@[simp]
theorem star_mul_self (A : unitaryGroup n α) : star A ⬝ A = 1 :=
A.2.1
-#align matrix.unitary_group.star_mul_self Matrix.unitaryGroup.star_mul_self
+#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_self
section CoeLemmas
variable (A B : unitaryGroup n α)
+/- warning: matrix.unitary_group.inv_val -> Matrix.UnitaryGroup.inv_val is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (DivInvMonoid.toHasInv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Group.toDivInvMonoid.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (unitary.group.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.starRing.{u2, u1} n α _inst_2 (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Inv.inv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (InvOneClass.toInv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Group.toDivisionMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (unitary.instGroupSubtypeMemSubmonoidToMulOneClassInstMembershipInstSetLikeSubmonoidUnitary.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.instStarRingMatrixNonUnitalSemiring.{u2, u1} n α _inst_2 (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_valₓ'. -/
@[simp]
theorem inv_val : ↑A⁻¹ = (star A : Matrix n n α) :=
rfl
-#align matrix.unitary_group.inv_val Matrix.unitaryGroup.inv_val
-
+#align matrix.unitary_group.inv_val Matrix.UnitaryGroup.inv_val
+
+/- warning: matrix.unitary_group.inv_apply -> Matrix.UnitaryGroup.inv_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (DivInvMonoid.toHasInv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Group.toDivInvMonoid.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (unitary.group.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.starRing.{u2, u1} n α _inst_2 (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasStar.{u2, u1} n α (InvolutiveStar.toHasStar.{u2} α (StarAddMonoid.toHasInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (Inv.inv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (InvOneClass.toInv.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Group.toDivisionMonoid.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (unitary.instGroupSubtypeMemSubmonoidToMulOneClassInstMembershipInstSetLikeSubmonoidUnitary.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))) (StarRing.toStarSemigroup.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.nonUnitalSemiring.{u2, u1} n α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_2) (Matrix.instStarRingMatrixNonUnitalSemiring.{u2, u1} n α _inst_2 (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4))))))) A)) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.instStarMatrix.{u2, u1} n α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddMonoidWithOne.toAddMonoid.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (Ring.toAddGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (StarRing.toStarAddMonoid.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3))) _inst_4)))) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_applyₓ'. -/
@[simp]
theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) :=
rfl
-#align matrix.unitary_group.inv_apply Matrix.unitaryGroup.inv_apply
-
+#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_apply
+
+/- warning: matrix.unitary_group.mul_val -> Matrix.UnitaryGroup.mul_val is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) B))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_valₓ'. -/
@[simp]
theorem mul_val : ↑(A * B) = A ⬝ B :=
rfl
-#align matrix.unitary_group.mul_val Matrix.unitaryGroup.mul_val
-
+#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_val
+
+/- warning: matrix.unitary_group.mul_apply -> Matrix.UnitaryGroup.mul_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (Distrib.toHasMul.{u2} α (Ring.toDistrib.{u2} α (CommRing.toRing.{u2} α _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) A) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) B))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (Matrix.mul.{u2, u1, u1, u1} n n n α _inst_2 (NonUnitalNonAssocRing.toMul.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) A) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) B))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_applyₓ'. -/
@[simp]
theorem mul_apply : ⇑(A * B) = A ⬝ B :=
rfl
-#align matrix.unitary_group.mul_apply Matrix.unitaryGroup.mul_apply
-
+#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_apply
+
+/- warning: matrix.unitary_group.one_val -> Matrix.UnitaryGroup.one_val is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Matrix.{u1, u1, u2} n n α) (Matrix.UnitaryGroup.coeMatrix.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))) (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Set.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) (Set.instMembershipSet.{max u1 u2} (Matrix.{u1, u1, u2} n n α)) x (SetLike.coe.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_valₓ'. -/
@[simp]
theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
-#align matrix.unitary_group.one_val Matrix.unitaryGroup.one_val
-
+#align matrix.unitary_group.one_val Matrix.UnitaryGroup.one_val
+
+/- warning: matrix.unitary_group.one_apply -> Matrix.UnitaryGroup.one_apply is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (n -> n -> α) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (fun (_x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) => n -> n -> α) (Matrix.UnitaryGroup.coeFun.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4) (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.hasOne.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n α) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.one.{u2, u1} n α (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} α (CommSemiring.toCommMonoidWithZero.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (Semiring.toOne.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_applyₓ'. -/
@[simp]
theorem one_apply : ⇑(1 : unitaryGroup n α) = (1 : Matrix n n α) :=
rfl
-#align matrix.unitary_group.one_apply Matrix.unitaryGroup.one_apply
-
+#align matrix.unitary_group.one_apply Matrix.UnitaryGroup.one_apply
+
+/- warning: matrix.unitary_group.to_lin'_mul -> Matrix.UnitaryGroup.toLin'_mul is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.right_ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (LinearMap.comp.{u2, u2, u2, max u1 u2, max u1 u2, max u1 u2} α α α (n -> α) (n -> α) (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomCompTriple.ids.{u2, u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mulₓ'. -/
@[simp]
theorem toLin'_mul : toLin' (A * B) = (toLin' A).comp (toLin' B) :=
Matrix.toLin'_mul A B
-#align matrix.unitary_group.to_lin'_mul Matrix.unitaryGroup.toLin'_mul
-
+#align matrix.unitary_group.to_lin'_mul Matrix.UnitaryGroup.toLin'_mul
+
+/- warning: matrix.unitary_group.to_lin'_one -> Matrix.UnitaryGroup.toLin'_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u1, u2} n n α) => LinearMap.{u2, u2, max u2 u1, max u2 u1} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2102 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Subtype.val.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (LinearMap.id.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.2099 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_oneₓ'. -/
@[simp]
theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
Matrix.toLin'_one
-#align matrix.unitary_group.to_lin'_one Matrix.unitaryGroup.toLin'_one
+#align matrix.unitary_group.to_lin'_one Matrix.UnitaryGroup.toLin'_one
end CoeLemmas
+/- warning: matrix.unitary_group.to_linear_equiv -> Matrix.UnitaryGroup.toLinearEquiv is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearEquiv.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.UnitaryGroup.toLinearEquiv._proof_1.{u2} α _inst_3) (Matrix.UnitaryGroup.toLinearEquiv._proof_2.{u2} α _inst_3) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) -> (LinearEquiv.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (RingHomInvPair.ids.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (RingHomInvPair.ids.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1017 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1017 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquivₓ'. -/
/-- `to_linear_equiv A` is matrix multiplication of vectors by `A`, as a linear equivalence. -/
def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
{ Matrix.toLin' A with
@@ -178,38 +292,68 @@ def toLinearEquiv (A : unitaryGroup n α) : (n → α) ≃ₗ[α] n → α :=
(toLin' A).comp (toLin' A⁻¹) x = toLin' (A * A⁻¹) x := by rw [← to_lin'_mul]
_ = x := by rw [mul_right_inv, to_lin'_one, id_apply]
}
-#align matrix.unitary_group.to_linear_equiv Matrix.unitaryGroup.toLinearEquiv
-
+#align matrix.unitary_group.to_linear_equiv Matrix.UnitaryGroup.toLinearEquiv
+
+/- warning: matrix.unitary_group.to_GL -> Matrix.UnitaryGroup.toGL is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) -> (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) -> (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGLₓ'. -/
/-- `to_GL` is the map from the unitary group to the general linear group -/
def toGL (A : unitaryGroup n α) : GeneralLinearGroup α (n → α) :=
GeneralLinearGroup.ofLinearEquiv (toLinearEquiv A)
-#align matrix.unitary_group.to_GL Matrix.unitaryGroup.toGL
-
+#align matrix.unitary_group.to_GL Matrix.UnitaryGroup.toGL
+
+/- warning: matrix.unitary_group.coe_to_GL -> Matrix.UnitaryGroup.coe_toGL is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.hasCoe.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.val.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)) (Matrix.UnitaryGroup.toLin'.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A)
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGLₓ'. -/
theorem coe_toGL (A : unitaryGroup n α) : ↑(toGL A) = toLin' A :=
rfl
-#align matrix.unitary_group.coe_to_GL Matrix.unitaryGroup.coe_toGL
-
+#align matrix.unitary_group.coe_to_GL Matrix.UnitaryGroup.coe_toGL
+
+/- warning: matrix.unitary_group.to_GL_one -> Matrix.UnitaryGroup.toGL_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (OfNat.mk.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) 1 (One.one.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)))))) (OfNat.ofNat.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) 1 (OfNat.mk.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) 1 (One.one.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (MulOneClass.toHasOne.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], Eq.{max (succ u1) (succ u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (OfNat.ofNat.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) 1 (One.toOfNat1.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.one.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))))) (OfNat.ofNat.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) 1 (One.toOfNat1.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (InvOneClass.toOne.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (DivInvOneMonoid.toInvOneClass.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (DivisionMonoid.toDivInvOneMonoid.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Group.toDivisionMonoid.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.instGroupUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))))))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_oneₓ'. -/
@[simp]
theorem toGL_one : toGL (1 : unitaryGroup n α) = 1 :=
by
ext1 v i
rw [coe_to_GL, to_lin'_one]
rfl
-#align matrix.unitary_group.to_GL_one Matrix.unitaryGroup.toGL_one
-
+#align matrix.unitary_group.to_GL_one Matrix.UnitaryGroup.toGL_one
+
+/- warning: matrix.unitary_group.to_GL_mul -> Matrix.UnitaryGroup.toGL_mul is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (B : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)), Eq.{succ (max u1 u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (instHMul.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (instHMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (MulOneClass.toHasMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))] (A : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (B : Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))), Eq.{max (succ u1) (succ u2)} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (instHMul.{max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (Submonoid.mul.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) A B)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (instHMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (MulOneClass.toMul.{max u1 u2} (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Units.instMulOneClassUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1291 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))))))) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 A) (Matrix.UnitaryGroup.toGL.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4 B))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mulₓ'. -/
@[simp]
theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B :=
by
ext1 v i
rw [coe_to_GL, to_lin'_mul]
rfl
-#align matrix.unitary_group.to_GL_mul Matrix.unitaryGroup.toGL_mul
-
+#align matrix.unitary_group.to_GL_mul Matrix.UnitaryGroup.toGL_mul
+
+/- warning: matrix.unitary_group.embedding_GL -> Matrix.UnitaryGroup.embeddingGL is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalRing.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalRing.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], MonoidHom.{max u1 u2, max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Submonoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.ring.{u2, u1} n α _inst_2 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_1 a b) a b) (CommRing.toRing.{u2} α _inst_3)))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Units.mulOneClass.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.Function.module.{u1, u2, u2} n α α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (AddCommGroup.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toAddCommGroup.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Semiring.toModule.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))
+but is expected to have type
+ forall {n : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] {α : Type.{u2}} [_inst_3 : CommRing.{u2} α] [_inst_4 : StarRing.{u2} α (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} α (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} α (CommRing.toNonUnitalCommRing.{u2} α _inst_3)))], MonoidHom.{max u1 u2, max u1 u2} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n α) (fun (x : Matrix.{u1, u1, u2} n n α) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n α) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n α) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) x (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4))) (LinearMap.GeneralLinearGroup.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Submonoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n α) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n α) (Matrix.semiring.{u2, u1} n α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))) (Matrix.unitaryGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 _inst_4)) (Units.instMulOneClassUnits.{max u1 u2} (LinearMap.{u2, u2, max u1 u2, max u1 u2} α α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (RingHom.id.{u2} α (Semiring.toNonAssocSemiring.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (n -> α) (n -> α) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))) (Module.End.monoid.{u2, max u1 u2} α (n -> α) (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (Pi.addCommMonoid.{u1, u2} n (fun (ᾰ : n) => α) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Pi.module.{u1, u2, u2} n (fun (a._@.Mathlib.LinearAlgebra.UnitaryGroup._hyg.1486 : n) => α) α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3)) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} α (NonAssocRing.toNonUnitalNonAssocRing.{u2} α (Ring.toNonAssocRing.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (i : n) => Semiring.toModule.{u2} α (CommSemiring.toSemiring.{u2} α (CommRing.toCommSemiring.{u2} α _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align matrix.unitary_group.embedding_GL Matrix.UnitaryGroup.embeddingGLₓ'. -/
/-- `unitary_group.embedding_GL` is the embedding from `unitary_group n α`
to `general_linear_group n α`. -/
def embeddingGL : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
⟨fun A => toGL A, by simp, by simp⟩
-#align matrix.unitary_group.embedding_GL Matrix.unitaryGroup.embeddingGL
+#align matrix.unitary_group.embedding_GL Matrix.UnitaryGroup.embeddingGL
end UnitaryGroup
@@ -219,12 +363,24 @@ variable (n) (β : Type v) [CommRing β]
attribute [local instance] starRingOfComm
+/- warning: matrix.orthogonal_group -> Matrix.orthogonalGroup is a dubious translation:
+lean 3 declaration is
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))
+but is expected to have type
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))
+Case conversion may be inaccurate. Consider using '#align matrix.orthogonal_group Matrix.orthogonalGroupₓ'. -/
/-- `orthogonal_group n` is the group of `n` by `n` matrices where the transpose is the inverse.
-/
abbrev orthogonalGroup :=
unitaryGroup n β
#align matrix.orthogonal_group Matrix.orthogonalGroup
+/- warning: matrix.mem_orthogonal_group_iff -> Matrix.mem_orthogonalGroup_iff is a dubious translation:
+lean 3 declaration is
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5)))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasMul.{u2, u1} n β _inst_2 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (CommRing.toRing.{u2} β _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toAddCommGroup.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasStar.{u2, u1} n β (InvolutiveStar.toHasStar.{u2} β (StarAddMonoid.toHasInvolutiveStar.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasOne.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))))) (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5))))))))))
+but is expected to have type
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instMulMatrix.{u2, u1} n β _inst_2 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) A (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instStarMatrix.{u2, u1} n β (InvolutiveStar.toStar.{u2} β (StarAddMonoid.toInvolutiveStar.{u2} β (AddMonoidWithOne.toAddMonoid.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (Ring.toAddGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} β (CommRing.toNonUnitalCommRing.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.one.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} β (CommSemiring.toCommMonoidWithZero.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (Semiring.toOne.{u2} β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iffₓ'. -/
theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ A * star A = 1 :=
by
@@ -232,6 +388,12 @@ theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
simpa only [mul_eq_mul, mul_eq_one_comm] using hA
#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iff
+/- warning: matrix.mem_orthogonal_group_iff' -> Matrix.mem_orthogonalGroup_iff' is a dubious translation:
+lean 3 declaration is
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.ring.{u2, u1} n β _inst_2 (fun (a : n) (b : n) => _inst_1 a b) (CommRing.toRing.{u2} β _inst_5)))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasMul.{u2, u1} n β _inst_2 (Distrib.toHasMul.{u2} β (Ring.toDistrib.{u2} β (CommRing.toRing.{u2} β _inst_5))) (AddCommGroup.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toAddCommGroup.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasStar.{u2, u1} n β (InvolutiveStar.toHasStar.{u2} β (StarAddMonoid.toHasInvolutiveStar.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (CommSemiring.toNonUnitalCommSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.hasOne.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (MulZeroClass.toHasZero.{u2} β (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))))) (AddMonoidWithOne.toOne.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (AddCommGroupWithOne.toAddGroupWithOne.{u2} β (Ring.toAddCommGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5))))))))))
+but is expected to have type
+ forall (n : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] (β : Type.{u2}) [_inst_5 : CommRing.{u2} β] {A : Matrix.{u1, u1, u2} n n β}, Iff (Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b)))))) (Matrix.{u1, u1, u2} n n β) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Monoid.toMulOneClass.{max u2 u1} (Matrix.{u1, u1, u2} n n β) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.semiring.{u2, u1} n β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)) _inst_2 (fun (a : n) (b : n) => _inst_1 a b))))))) A (Matrix.orthogonalGroup.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 β _inst_5)) (Eq.{max (succ u1) (succ u2)} (Matrix.{u1, u1, u2} n n β) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (Matrix.{u1, u1, u2} n n β) (instHMul.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instMulMatrix.{u2, u1} n β _inst_2 (NonUnitalNonAssocRing.toMul.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} β (NonAssocRing.toNonUnitalNonAssocRing.{u2} β (Ring.toNonAssocRing.{u2} β (CommRing.toRing.{u2} β _inst_5))))))) (Star.star.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.instStarMatrix.{u2, u1} n β (InvolutiveStar.toStar.{u2} β (StarAddMonoid.toInvolutiveStar.{u2} β (AddMonoidWithOne.toAddMonoid.{u2} β (AddGroupWithOne.toAddMonoidWithOne.{u2} β (Ring.toAddGroupWithOne.{u2} β (CommRing.toRing.{u2} β _inst_5)))) (StarRing.toStarAddMonoid.{u2} β (NonUnitalCommSemiring.toNonUnitalSemiring.{u2} β (NonUnitalCommRing.toNonUnitalCommSemiring.{u2} β (CommRing.toNonUnitalCommRing.{u2} β _inst_5))) (starRingOfComm.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))) A) A) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n β) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n β) (Matrix.one.{u2, u1} n β (fun (a : n) (b : n) => _inst_1 a b) (CommMonoidWithZero.toZero.{u2} β (CommSemiring.toCommMonoidWithZero.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5))) (Semiring.toOne.{u2} β (CommSemiring.toSemiring.{u2} β (CommRing.toCommSemiring.{u2} β _inst_5)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'ₓ'. -/
theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Co-authored-by: Bergschaf <christian.k@netcom-mail.de> Co-authored-by: bergschaf <christian.k@netcom-mail.de>
@@ -198,6 +198,22 @@ set_option linter.uppercaseLean3 false in
end UnitaryGroup
+section specialUnitaryGroup
+
+variable (n) (α)
+
+/--`Matrix.specialUnitaryGroup` is the group of unitary `n` by `n` matrices where the determinant
+is 1. (This definition is only correct if 2 is invertible.)-/
+abbrev specialUnitaryGroup := unitaryGroup n α ⊓ MonoidHom.mker detMonoidHom
+
+variable {n} {α}
+
+theorem mem_specialUnitaryGroup_iff :
+ A ∈ specialUnitaryGroup n α ↔ A ∈ unitaryGroup n α ∧ A.det = 1 :=
+ Iff.rfl
+
+end specialUnitaryGroup
+
section OrthogonalGroup
variable (n) (β : Type v) [CommRing β]
@@ -226,4 +242,22 @@ theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
end OrthogonalGroup
+section specialOrthogonalGroup
+
+variable (n) (β : Type v) [CommRing β]
+
+attribute [local instance] starRingOfComm
+
+/-- `Matrix.specialOrthogonalGroup n` is the group of orthogonal `n` by `n` where the determinant
+is one. (This definition is only correct if 2 is invertible.)-/
+abbrev specialOrthogonalGroup := specialUnitaryGroup n β
+
+variable {n} {β} {A : Matrix n n β}
+
+theorem mem_specialOrthogonalGroup_iff :
+ A ∈ specialOrthogonalGroup n β ↔ A ∈ orthogonalGroup n β ∧ A.det = 1 :=
+ Iff.rfl
+
+end specialOrthogonalGroup
+
end Matrix
@@ -145,7 +145,7 @@ theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
end CoeLemmas
--- Porting note: todo: redefine `toGL`/`embeddingGL` as in this example:
+-- Porting note (#11215): TODO: redefine `toGL`/`embeddingGL` as in this example:
example : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
.toHomUnits ⟨⟨toLin', toLin'_one⟩, toLin'_mul⟩
-- Porting note: then we can get `toLinearEquiv` from `GeneralLinearGroup.toLinearEquiv`
@@ -202,7 +202,7 @@ section OrthogonalGroup
variable (n) (β : Type v) [CommRing β]
--- Porting note: todo: will lemmas about `Matrix.orthogonalGroup` work without making
+-- Porting note (#11215): TODO: will lemmas about `Matrix.orthogonalGroup` work without making
-- `starRingOfComm` a local instance? E.g., can we talk about unitary group and orthogonal group
-- at the same time?
attribute [local instance] starRingOfComm
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -145,10 +145,10 @@ theorem toLin'_one : toLin' (1 : unitaryGroup n α) = LinearMap.id :=
end CoeLemmas
--- porting note: todo: redefine `toGL`/`embeddingGL` as in this example:
+-- Porting note: todo: redefine `toGL`/`embeddingGL` as in this example:
example : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
.toHomUnits ⟨⟨toLin', toLin'_one⟩, toLin'_mul⟩
--- porting note: then we can get `toLinearEquiv` from `GeneralLinearGroup.toLinearEquiv`
+-- Porting note: then we can get `toLinearEquiv` from `GeneralLinearGroup.toLinearEquiv`
/-- `Matrix.unitaryGroup.toLinearEquiv A` is matrix multiplication of vectors by `A`, as a linear
equivalence. -/
⬝
notation in favor of HMul
(#6487)
The main difficulty here is that *
has a slightly difference precedence to ⬝
. notably around smul
and neg
.
The other annoyance is that ↑U ⬝ A ⬝ ↑U⁻¹ : Matrix m m 𝔸
now has to be written U.val * A * (U⁻¹).val
in order to typecheck.
A downside of this change to consider: if you have a goal of A * (B * C) = (A * B) * C
, mul_assoc
now gives the illusion of matching, when in fact Matrix.mul_assoc
is needed. Previously the distinct symbol made it easy to avoid this mistake.
On the flipside, there is now no need to rewrite by Matrix.mul_eq_mul
all the time (indeed, the lemma is now removed).
@@ -65,12 +65,12 @@ variable {α : Type v} [CommRing α] [StarRing α] {A : Matrix n n α}
theorem mem_unitaryGroup_iff : A ∈ Matrix.unitaryGroup n α ↔ A * star A = 1 := by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
- simpa only [mul_eq_mul, mul_eq_one_comm] using hA
+ simpa only [mul_eq_one_comm] using hA
#align matrix.mem_unitary_group_iff Matrix.mem_unitaryGroup_iff
theorem mem_unitaryGroup_iff' : A ∈ Matrix.unitaryGroup n α ↔ star A * A = 1 := by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_one_comm] at hA
#align matrix.mem_unitary_group_iff' Matrix.mem_unitaryGroup_iff'
theorem det_of_mem_unitary {A : Matrix n n α} (hA : A ∈ Matrix.unitaryGroup n α) :
@@ -107,8 +107,7 @@ theorem ext (A B : unitaryGroup n α) : (∀ i j, A i j = B i j) → A = B :=
(UnitaryGroup.ext_iff A B).mpr
#align matrix.unitary_group.ext Matrix.UnitaryGroup.ext
-@[simp]
-theorem star_mul_self (A : unitaryGroup n α) : star A.1 ⬝ A.1 = 1 :=
+theorem star_mul_self (A : unitaryGroup n α) : star A.1 * A.1 = 1 :=
A.2.1
#align matrix.unitary_group.star_mul_self Matrix.UnitaryGroup.star_mul_self
@@ -122,10 +121,10 @@ variable (A B : unitaryGroup n α)
@[simp] theorem inv_apply : ⇑A⁻¹ = (star A : Matrix n n α) := rfl
#align matrix.unitary_group.inv_apply Matrix.UnitaryGroup.inv_apply
-@[simp] theorem mul_val : ↑(A * B) = A.1 ⬝ B.1 := rfl
+@[simp] theorem mul_val : ↑(A * B) = A.1 * B.1 := rfl
#align matrix.unitary_group.mul_val Matrix.UnitaryGroup.mul_val
-@[simp] theorem mul_apply : ⇑(A * B) = A.1 ⬝ B.1 := rfl
+@[simp] theorem mul_apply : ⇑(A * B) = A.1 * B.1 := rfl
#align matrix.unitary_group.mul_apply Matrix.UnitaryGroup.mul_apply
@[simp] theorem one_val : ↑(1 : unitaryGroup n α) = (1 : Matrix n n α) := rfl
@@ -216,16 +215,15 @@ abbrev orthogonalGroup := unitaryGroup n β
theorem mem_orthogonalGroup_iff {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ A * star A = 1 := by
refine' ⟨And.right, fun hA => ⟨_, hA⟩⟩
- simpa only [mul_eq_mul, mul_eq_one_comm] using hA
+ simpa only [mul_eq_one_comm] using hA
#align matrix.mem_orthogonal_group_iff Matrix.mem_orthogonalGroup_iff
theorem mem_orthogonalGroup_iff' {A : Matrix n n β} :
A ∈ Matrix.orthogonalGroup n β ↔ star A * A = 1 := by
refine' ⟨And.left, fun hA => ⟨hA, _⟩⟩
- rwa [mul_eq_mul, mul_eq_one_comm] at hA
+ rwa [mul_eq_one_comm] at hA
#align matrix.mem_orthogonal_group_iff' Matrix.mem_orthogonalGroup_iff'
end OrthogonalGroup
end Matrix
-
@@ -2,17 +2,14 @@
Copyright (c) 2021 Shing Tak Lam. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Shing Tak Lam
-
-! This file was ported from Lean 3 source module linear_algebra.unitary_group
-! leanprover-community/mathlib commit 2705404e701abc6b3127da906f40bae062a169c9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.LinearAlgebra.GeneralLinearGroup
import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.LinearAlgebra.Matrix.NonsingularInverse
import Mathlib.Algebra.Star.Unitary
+#align_import linear_algebra.unitary_group from "leanprover-community/mathlib"@"2705404e701abc6b3127da906f40bae062a169c9"
+
/-!
# The Unitary Group
The unported dependencies are