linear_algebra.unitary_groupMathlib.LinearAlgebra.UnitaryGroup

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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'
 -/
 
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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 -/
Diff
@@ -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
Diff
@@ -50,7 +50,7 @@ namespace Matrix
 
 open LinearMap
 
-open Matrix
+open scoped Matrix
 
 section
 
Diff
@@ -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
Diff
@@ -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:
Diff
@@ -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 α`. -/
Diff
@@ -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 :=
Diff
@@ -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
Diff
@@ -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

Changes in mathlib4

mathlib3
mathlib4
feat(LinearAlgebra/UnitaryGroup): special orthogonal group (#11708)

Co-authored-by: Bergschaf <christian.k@netcom-mail.de> Co-authored-by: bergschaf <christian.k@netcom-mail.de>

Diff
@@ -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
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -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
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -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. -/
refactor(Data/Matrix): Eliminate 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).

Diff
@@ -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
-
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
feat: port LinearAlgebra.UnitaryGroup (#3699)

I use name unitaryGroup (because it's a Submonoid, not a Type _) and namespace UnitaryGroup. Should I change either of these names?

Also, I don't know how to fix the timeout in the simpNF linter.

Co-authored-by: Matthew Ballard <matt@mrb.email>

Dependencies 8 + 581

582 files ported (98.6%)
242703 lines ported (98.7%)
Show graph

The unported dependencies are