data.matrix.rank
⟷
Mathlib.Data.Matrix.Rank
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -113,7 +113,7 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
by
refine' le_antisymm (rank_le_card_width A) _
have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
- rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
+ rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
-/
@@ -166,8 +166,8 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
apply LinearMap.pi_ext'; rintro i; apply LinearMap.ext_ring
have aux₁ := to_lin_self (Pi.basisFun R n) (Pi.basisFun R m) A i
have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
- rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
- rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
+ rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
+ rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, to_lin_self, map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
@@ -227,7 +227,7 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
· intro h
replace h := congr_arg (dot_product (star x)) h
rwa [dot_product_mul_vec, dot_product_zero, vec_mul_conj_transpose, star_star,
- dot_product_star_self_eq_zero] at h
+ dot_product_star_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
-/
@@ -279,7 +279,7 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
constructor
· intro h
replace h := congr_arg (dot_product x) h
- rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
+ rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -87,7 +87,7 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, mul_vec_lin_mul]
- exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph_0 _ _) (LinearMap.rank_comp_le_left _ _)
+ exact Cardinal.toNat_le_toNat (rank_lt_aleph_0 _ _) (LinearMap.rank_comp_le_left _ _)
#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -169,7 +169,7 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
- LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
+ LinearMap.coe_single, to_lin_self, map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,11 +3,11 @@ Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Eric Wieer
-/
-import Mathbin.LinearAlgebra.FreeModule.Finite.Rank
-import Mathbin.LinearAlgebra.Matrix.ToLin
-import Mathbin.LinearAlgebra.FiniteDimensional
-import Mathbin.LinearAlgebra.Matrix.DotProduct
-import Mathbin.Data.Complex.Module
+import LinearAlgebra.FreeModule.Finite.Rank
+import LinearAlgebra.Matrix.ToLin
+import LinearAlgebra.FiniteDimensional
+import LinearAlgebra.Matrix.DotProduct
+import Data.Complex.Module
#align_import data.matrix.rank from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Eric Wieer
-
-! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.FreeModule.Finite.Rank
import Mathbin.LinearAlgebra.Matrix.ToLin
@@ -14,6 +9,8 @@ import Mathbin.LinearAlgebra.FiniteDimensional
import Mathbin.LinearAlgebra.Matrix.DotProduct
import Mathbin.Data.Complex.Module
+#align_import data.matrix.rank from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
+
/-!
# Rank of matrices
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -55,23 +55,29 @@ noncomputable def rank (A : Matrix m n R) : ℕ :=
#align matrix.rank Matrix.rank
-/
+#print Matrix.rank_one /-
@[simp]
theorem rank_one [StrongRankCondition R] [DecidableEq n] :
rank (1 : Matrix n n R) = Fintype.card n := by
rw [rank, mul_vec_lin_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
+-/
+#print Matrix.rank_zero /-
@[simp]
theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
rw [rank, mul_vec_lin_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
+-/
+#print Matrix.rank_le_card_width /-
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
haveI : Module.Finite R (n → R) := Module.Finite.pi
haveI : Module.Free R (n → R) := Module.Free.pi _ _
exact A.mul_vec_lin.finrank_range_le.trans_eq (finrank_pi _)
#align matrix.rank_le_card_width Matrix.rank_le_card_width
+-/
#print Matrix.rank_le_width /-
theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
@@ -80,28 +86,31 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
#align matrix.rank_le_width Matrix.rank_le_width
-/
+#print Matrix.rank_mul_le_left /-
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, mul_vec_lin_mul]
exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph_0 _ _) (LinearMap.rank_comp_le_left _ _)
#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
+-/
-include m_fin
-
+#print Matrix.rank_mul_le_right /-
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
(A ⬝ B).rank ≤ B.rank := by
rw [rank, rank, mul_vec_lin_mul]
exact
finrank_le_finrank_of_rank_le_rank (LinearMap.lift_rank_comp_le_right _ _) (rank_lt_aleph_0 _ _)
#align matrix.rank_mul_le_right Matrix.rank_mul_le_right
+-/
-omit m_fin
-
+#print Matrix.rank_mul_le /-
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ min A.rank B.rank :=
le_min (rank_mul_le_left _ _) (rank_mul_le_right _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
+-/
+#print Matrix.rank_unit /-
theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ) :
(A : Matrix n n R).rank = Fintype.card n :=
by
@@ -109,11 +118,15 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
+-/
+#print Matrix.rank_of_isUnit /-
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
A.rank = Fintype.card n := by obtain ⟨A, rfl⟩ := h; exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
+-/
+#print Matrix.rank_submatrix_le /-
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
(A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A :=
@@ -123,21 +136,25 @@ theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e :
LinearEquiv.range, Submodule.map_top]
exact Submodule.finrank_map_le _ _
#align matrix.rank_submatrix_le Matrix.rank_submatrix_le
+-/
+#print Matrix.rank_reindex /-
theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
rank (reindex e₁ e₂ A) = rank A := by
rw [rank, rank, mul_vec_lin_reindex, LinearMap.range_comp, LinearMap.range_comp,
LinearEquiv.range, Submodule.map_top, LinearEquiv.finrank_map_eq]
#align matrix.rank_reindex Matrix.rank_reindex
+-/
+#print Matrix.rank_submatrix /-
@[simp]
theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
rank (A.submatrix e₁ e₂) = rank A := by
simpa only [reindex_apply] using rank_reindex e₁.symm e₂.symm A
#align matrix.rank_submatrix Matrix.rank_submatrix
+-/
-include m_fin
-
+#print Matrix.rank_eq_finrank_range_toLin /-
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
(v₂ : Basis n R M₂) : A.rank = finrank R (toLin v₂ v₁ A).range :=
@@ -157,15 +174,16 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
+-/
+#print Matrix.rank_le_card_height /-
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
by
haveI : Module.Finite R (m → R) := Module.Finite.pi
haveI : Module.Free R (m → R) := Module.Free.pi _ _
exact (Submodule.finrank_le _).trans (finrank_pi R).le
#align matrix.rank_le_card_height Matrix.rank_le_card_height
-
-omit m_fin
+-/
#print Matrix.rank_le_height /-
theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
@@ -174,10 +192,12 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
#align matrix.rank_le_height Matrix.rank_le_height
-/
+#print Matrix.rank_eq_finrank_span_cols /-
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
A.rank = finrank R (Submodule.span R (Set.range Aᵀ)) := by rw [rank, Matrix.range_mulVecLin]
#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_cols
+-/
end CommRing
@@ -200,6 +220,7 @@ section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
+#print Matrix.ker_mulVecLin_conjTranspose_mul_self /-
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -212,7 +233,9 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
dot_product_star_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
+-/
+#print Matrix.rank_conjTranspose_mul_self /-
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -222,7 +245,9 @@ theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.r
congr 1
rw [ker_mul_vec_lin_conj_transpose_mul_self]
#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
+-/
+#print Matrix.rank_conjTranspose /-
-- this follows the proof here https://math.stackexchange.com/a/81903/1896
/-- TODO: prove this in greater generality. -/
@[simp]
@@ -232,12 +257,15 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
congr_arg _ <| conjTranspose_conjTranspose _)
((rank_conjTranspose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_conj_transpose Matrix.rank_conjTranspose
+-/
+#print Matrix.rank_self_mul_conjTranspose /-
@[simp]
theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
simpa only [rank_conj_transpose, conj_transpose_conj_transpose] using
rank_conj_transpose_mul_self Aᴴ
#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTranspose
+-/
end StarOrderedField
@@ -245,6 +273,7 @@ section LinearOrderedField
variable [Fintype m] [LinearOrderedField R]
+#print Matrix.ker_mulVecLin_transpose_mul_self /-
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -256,7 +285,9 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
+-/
+#print Matrix.rank_transpose_mul_self /-
theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -266,21 +297,27 @@ theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank
congr 1
rw [ker_mul_vec_lin_transpose_mul_self]
#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
+-/
+#print Matrix.rank_transpose /-
/-- TODO: prove this in greater generality. -/
@[simp]
theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
le_antisymm ((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_transpose Matrix.rank_transpose
+-/
+#print Matrix.rank_self_mul_transpose /-
@[simp]
theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank := by
simpa only [rank_transpose, transpose_transpose] using rank_transpose_mul_self Aᵀ
#align matrix.rank_self_mul_transpose Matrix.rank_self_mul_transpose
+-/
end LinearOrderedField
+#print Matrix.rank_eq_finrank_span_row /-
/-- The rank of a matrix is the rank of the space spanned by its rows.
TODO: prove this in a generality that works for `ℂ` too, not just `ℚ` and `ℝ`. -/
@@ -290,6 +327,7 @@ theorem rank_eq_finrank_span_row [LinearOrderedField R] [Finite m] (A : Matrix m
cases nonempty_fintype m
rw [← rank_transpose, rank_eq_finrank_span_cols, transpose_transpose]
#align matrix.rank_eq_finrank_span_row Matrix.rank_eq_finrank_span_row
+-/
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -107,7 +107,7 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
by
refine' le_antisymm (rank_le_card_width A) _
have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
- rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
+ rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
@@ -152,8 +152,8 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
apply LinearMap.pi_ext'; rintro i; apply LinearMap.ext_ring
have aux₁ := to_lin_self (Pi.basisFun R n) (Pi.basisFun R m) A i
have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
- rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
- rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
+ rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
+ rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
@@ -209,7 +209,7 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
· intro h
replace h := congr_arg (dot_product (star x)) h
rwa [dot_product_mul_vec, dot_product_zero, vec_mul_conj_transpose, star_star,
- dot_product_star_self_eq_zero] at h
+ dot_product_star_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
@@ -253,7 +253,7 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
constructor
· intro h
replace h := congr_arg (dot_product x) h
- rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
+ rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -36,7 +36,7 @@ This definition does not depend on the choice of basis, see `matrix.rank_eq_finr
-/
-open Matrix
+open scoped Matrix
namespace Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -55,35 +55,17 @@ noncomputable def rank (A : Matrix m n R) : ℕ :=
#align matrix.rank Matrix.rank
-/
-/- warning: matrix.rank_one -> Matrix.rank_one is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.hasOne.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (Fintype.card.{u1} n _inst_1)
-but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.one.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toOne.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Fintype.card.{u1} n _inst_1)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_one Matrix.rank_oneₓ'. -/
@[simp]
theorem rank_one [StrongRankCondition R] [DecidableEq n] :
rank (1 : Matrix n n R) = Fintype.card n := by
rw [rank, mul_vec_lin_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
-/- warning: matrix.rank_zero -> Matrix.rank_zero is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Nontrivial.{u3} R], Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) 0 (OfNat.mk.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) 0 (Zero.zero.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) (Matrix.hasZero.{u3, u1, u2} m n R (MulZeroClass.toHasZero.{u3} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))
-but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Nontrivial.{u3} R], Eq.{1} Nat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 (OfNat.ofNat.{max (max u2 u1) u3} (Matrix.{u2, u1, u3} m n R) 0 (Zero.toOfNat0.{max (max u2 u1) u3} (Matrix.{u2, u1, u3} m n R) (Matrix.zero.{u3, u2, u1} m n R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))
-Case conversion may be inaccurate. Consider using '#align matrix.rank_zero Matrix.rank_zeroₓ'. -/
@[simp]
theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
rw [rank, mul_vec_lin_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
-/- warning: matrix.rank_le_card_width -> Matrix.rank_le_card_width is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} n _inst_1)
-but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_width Matrix.rank_le_card_widthₓ'. -/
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
haveI : Module.Finite R (n → R) := Module.Finite.pi
@@ -98,12 +80,6 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
#align matrix.rank_le_width Matrix.rank_le_width
-/
-/- warning: matrix.rank_mul_le_left -> Matrix.rank_mul_le_left is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_left Matrix.rank_mul_le_leftₓ'. -/
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, mul_vec_lin_mul]
@@ -112,12 +88,6 @@ theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix
include m_fin
-/- warning: matrix.rank_mul_le_right -> Matrix.rank_mul_le_right is a dubious translation:
-lean 3 declaration is
- forall {l : Type.{u1}} {m : Type.{u2}} {n : Type.{u3}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u3} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} l m R) (B : Matrix.{u2, u3, u4} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u1, u2, u3} l m n R m_fin (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u3, u4} m n R _inst_1 _inst_3 B)
-but is expected to have type
- forall {l : Type.{u3}} {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} l m R) (B : Matrix.{u2, u1, u4} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u3, u2, u1} l m n R m_fin (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u1, u4} m n R _inst_1 _inst_3 B)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_right Matrix.rank_mul_le_rightₓ'. -/
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
(A ⬝ B).rank ≤ B.rank := by
rw [rank, rank, mul_vec_lin_mul]
@@ -127,23 +97,11 @@ theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix
omit m_fin
-/- warning: matrix.rank_mul_le -> Matrix.rank_mul_le is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (LinearOrder.min.{0} Nat Nat.linearOrder (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u3, u4} n o R _inst_2 _inst_3 B))
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Min.min.{0} Nat instMinNat (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u1, u4} n o R _inst_2 _inst_3 B))
-Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le Matrix.rank_mul_leₓ'. -/
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ min A.rank B.rank :=
le_min (rank_mul_le_left _ _) (rank_mul_le_right _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
-/- warning: matrix.rank_unit -> Matrix.rank_unit is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _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) (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (Units.hasCoe.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))))))) A)) (Fintype.card.{u1} n _inst_1)
-but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u2 u1} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b))))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Units.val.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A)) (Fintype.card.{u1} n _inst_1)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_unit Matrix.rank_unitₓ'. -/
theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ) :
(A : Matrix n n R).rank = Fintype.card n :=
by
@@ -152,22 +110,10 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
-/- warning: matrix.rank_of_is_unit -> Matrix.rank_of_isUnit is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
-but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
-Case conversion may be inaccurate. Consider using '#align matrix.rank_of_is_unit Matrix.rank_of_isUnitₓ'. -/
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
A.rank = Fintype.card n := by obtain ⟨A, rfl⟩ := h; exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
-/- warning: matrix.rank_submatrix_le -> Matrix.rank_submatrix_le is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u1} m] (f : n -> m) (e : Equiv.{succ u2, succ u1} n m) (A : Matrix.{u1, u1, u3} m m R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A f (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e))) (Matrix.rank.{u1, u1, u3} m m R _inst_5 _inst_3 A)
-but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix_le Matrix.rank_submatrix_leₓ'. -/
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
(A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A :=
@@ -178,24 +124,12 @@ theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e :
exact Submodule.finrank_map_le _ _
#align matrix.rank_submatrix_le Matrix.rank_submatrix_le
-/- warning: matrix.rank_reindex -> Matrix.rank_reindex is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (e₁ : Equiv.{succ u1, succ u2} m n) (e₂ : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (coeFn.{max 1 (max (succ (max u1 u3)) (succ (max u2 u3))) (succ (max u2 u3)) (succ (max u1 u3)), max (succ (max u1 u3)) (succ (max u2 u3))} (Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) => (Matrix.{u1, u1, u3} m m R) -> (Matrix.{u2, u2, u3} n n R)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] [_inst_4 : Fintype.{u3} m] (e₁ : Equiv.{succ u3, succ u2} m n) (e₂ : Equiv.{succ u3, succ u2} m n) (A : Matrix.{u3, u3, u1} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 _inst_3 (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u2)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.{u3, u3, u1} m m R) (fun (_x : Matrix.{u3, u3, u1} m m R) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u3, u3, u1} m m R) => Matrix.{u2, u2, u1} n n R) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u2) (succ u1)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.reindex.{u1, u2, u3, u3, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u3, u3, u1} m m R _inst_4 _inst_3 A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_reindex Matrix.rank_reindexₓ'. -/
theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
rank (reindex e₁ e₂ A) = rank A := by
rw [rank, rank, mul_vec_lin_reindex, LinearMap.range_comp, LinearMap.range_comp,
LinearEquiv.range, Submodule.map_top, LinearEquiv.finrank_map_eq]
#align matrix.rank_reindex Matrix.rank_reindex
-/- warning: matrix.rank_submatrix -> Matrix.rank_submatrix is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (A : Matrix.{u1, u1, u3} m m R) (e₁ : Equiv.{succ u2, succ u1} n m) (e₂ : Equiv.{succ u2, succ u1} n m), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₁) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₂))) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : Fintype.{u3} m] (A : Matrix.{u3, u3, u2} m m R) (e₁ : Equiv.{succ u1, succ u3} n m) (e₂ : Equiv.{succ u1, succ u3} n m), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Matrix.submatrix.{u2, u1, u3, u3, u1} n m m n R A (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₁) (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₂))) (Matrix.rank.{u3, u3, u2} m m R _inst_4 _inst_3 A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix Matrix.rank_submatrixₓ'. -/
@[simp]
theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
rank (A.submatrix e₁ e₂) = rank A := by
@@ -204,9 +138,6 @@ theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
include m_fin
-/- warning: matrix.rank_eq_finrank_range_to_lin -> Matrix.rank_eq_finrank_range_toLin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
(v₂ : Basis n R M₂) : A.rank = finrank R (toLin v₂ v₁ A).range :=
@@ -227,12 +158,6 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
-/- warning: matrix.rank_le_card_height -> Matrix.rank_le_card_height is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} m m_fin)
-but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} m m_fin)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_height Matrix.rank_le_card_heightₓ'. -/
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
by
haveI : Module.Finite R (m → R) := Module.Finite.pi
@@ -249,9 +174,6 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
#align matrix.rank_le_height Matrix.rank_le_height
-/
-/- warning: matrix.rank_eq_finrank_span_cols -> Matrix.rank_eq_finrank_span_cols is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_colsₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
A.rank = finrank R (Submodule.span R (Set.range Aᵀ)) := by rw [rank, Matrix.range_mulVecLin]
@@ -278,9 +200,6 @@ section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
-/- warning: matrix.ker_mul_vec_lin_conj_transpose_mul_self -> Matrix.ker_mulVecLin_conjTranspose_mul_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -294,12 +213,6 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
-/- warning: matrix.rank_conj_transpose_mul_self -> Matrix.rank_conjTranspose_mul_self is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_selfₓ'. -/
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -310,12 +223,6 @@ theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.r
rw [ker_mul_vec_lin_conj_transpose_mul_self]
#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
-/- warning: matrix.rank_conj_transpose -> Matrix.rank_conjTranspose is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} n m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose Matrix.rank_conjTransposeₓ'. -/
-- this follows the proof here https://math.stackexchange.com/a/81903/1896
/-- TODO: prove this in greater generality. -/
@[simp]
@@ -326,12 +233,6 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
((rank_conjTranspose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_conj_transpose Matrix.rank_conjTranspose
-/- warning: matrix.rank_self_mul_conj_transpose -> Matrix.rank_self_mul_conjTranspose is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTransposeₓ'. -/
@[simp]
theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
simpa only [rank_conj_transpose, conj_transpose_conj_transpose] using
@@ -344,9 +245,6 @@ section LinearOrderedField
variable [Fintype m] [LinearOrderedField R]
-/- warning: matrix.ker_mul_vec_lin_transpose_mul_self -> Matrix.ker_mulVecLin_transpose_mul_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_selfₓ'. -/
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -359,12 +257,6 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
· intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
-/- warning: matrix.rank_transpose_mul_self -> Matrix.rank_transpose_mul_self is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_selfₓ'. -/
theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -375,12 +267,6 @@ theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank
rw [ker_mul_vec_lin_transpose_mul_self]
#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
-/- warning: matrix.rank_transpose -> Matrix.rank_transpose is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} n m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.transpose.{u3, u1, u2} m n R A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.transpose.{u1, u3, u2} m n R A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_transpose Matrix.rank_transposeₓ'. -/
/-- TODO: prove this in greater generality. -/
@[simp]
theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
@@ -388,12 +274,6 @@ theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_transpose Matrix.rank_transpose
-/- warning: matrix.rank_self_mul_transpose -> Matrix.rank_self_mul_transpose is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) A (Matrix.transpose.{u3, u1, u2} m n R A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) A (Matrix.transpose.{u1, u3, u2} m n R A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
-Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_transpose Matrix.rank_self_mul_transposeₓ'. -/
@[simp]
theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank := by
simpa only [rank_transpose, transpose_transpose] using rank_transpose_mul_self Aᵀ
@@ -401,9 +281,6 @@ theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank
end LinearOrderedField
-/- warning: matrix.rank_eq_finrank_span_row -> Matrix.rank_eq_finrank_span_row is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_row Matrix.rank_eq_finrank_span_rowₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its rows.
TODO: prove this in a generality that works for `ℂ` too, not just `ℚ` and `ℝ`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -159,9 +159,7 @@ but is expected to have type
forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
Case conversion may be inaccurate. Consider using '#align matrix.rank_of_is_unit Matrix.rank_of_isUnitₓ'. -/
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
- A.rank = Fintype.card n := by
- obtain ⟨A, rfl⟩ := h
- exact rank_unit A
+ A.rank = Fintype.card n := by obtain ⟨A, rfl⟩ := h; exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
/- warning: matrix.rank_submatrix_le -> Matrix.rank_submatrix_le is a dubious translation:
@@ -215,16 +213,12 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
by
let e₁ := (Pi.basisFun R m).Equiv v₁ (Equiv.refl _)
let e₂ := (Pi.basisFun R n).Equiv v₂ (Equiv.refl _)
- have range_e₂ : (e₂ : (n → R) →ₗ[R] M₂).range = ⊤ :=
- by
- rw [LinearMap.range_eq_top]
+ have range_e₂ : (e₂ : (n → R) →ₗ[R] M₂).range = ⊤ := by rw [LinearMap.range_eq_top];
exact e₂.surjective
refine' LinearEquiv.finrank_eq (e₁.of_submodules _ _ _)
rw [← LinearMap.range_comp, ← LinearMap.range_comp_of_range_eq_top (to_lin v₂ v₁ A) range_e₂]
congr 1
- apply LinearMap.pi_ext'
- rintro i
- apply LinearMap.ext_ring
+ apply LinearMap.pi_ext'; rintro i; apply LinearMap.ext_ring
have aux₁ := to_lin_self (Pi.basisFun R n) (Pi.basisFun R m) A i
have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
@@ -297,8 +291,7 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
replace h := congr_arg (dot_product (star x)) h
rwa [dot_product_mul_vec, dot_product_zero, vec_mul_conj_transpose, star_star,
dot_product_star_self_eq_zero] at h
- · intro h
- rw [h, mul_vec_zero]
+ · intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
/- warning: matrix.rank_conj_transpose_mul_self -> Matrix.rank_conjTranspose_mul_self is a dubious translation:
@@ -363,8 +356,7 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
· intro h
replace h := congr_arg (dot_product x) h
rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
- · intro h
- rw [h, mul_vec_zero]
+ · intro h; rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
/- warning: matrix.rank_transpose_mul_self -> Matrix.rank_transpose_mul_self is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -207,10 +207,7 @@ theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
include m_fin
/- warning: matrix.rank_eq_finrank_range_to_lin -> Matrix.rank_eq_finrank_range_toLin is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : DecidableEq.{succ u2} n] {M₁ : Type.{u4}} {M₂ : Type.{u5}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u5} M₂] [_inst_7 : Module.{u3, u4} R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u3, u5} R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6)] (A : Matrix.{u1, u2, u3} m n R) (v₁ : Basis.{u1, u3, u4} m R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u2, u3, u5} n R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, u4} R (coeSort.{succ u4, succ (succ u4)} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) Type.{u4} (SetLike.hasCoeToSort.{u4, u4} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, u4} R M₁ (CommRing.toRing.{u3} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
-but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
@@ -259,10 +256,7 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
-/
/- warning: matrix.rank_eq_finrank_span_cols -> Matrix.rank_eq_finrank_span_cols is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, max u1 u3} R (coeSort.{succ (max u1 u3), succ (succ (max u1 u3))} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) Type.{max u1 u3} (SetLike.hasCoeToSort.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (m -> R) (Submodule.setLike.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, max u1 u3} R (m -> R) (CommRing.toRing.{u3} R _inst_3) (Pi.addCommGroup.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Submodule.module.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))))
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_colsₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
@@ -291,10 +285,7 @@ section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
/- warning: matrix.ker_mul_vec_lin_conj_transpose_mul_self -> Matrix.ker_mulVecLin_conjTranspose_mul_self is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -361,10 +352,7 @@ section LinearOrderedField
variable [Fintype m] [LinearOrderedField R]
/- warning: matrix.ker_mul_vec_lin_transpose_mul_self -> Matrix.ker_mulVecLin_transpose_mul_self is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) m n _inst_1 A))
-but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_selfₓ'. -/
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -422,10 +410,7 @@ theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank
end LinearOrderedField
/- warning: matrix.rank_eq_finrank_span_row -> Matrix.rank_eq_finrank_span_row is a dubious translation:
-lean 3 declaration is
- forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : LinearOrderedField.{u3} R] [_inst_4 : Finite.{succ u1} m] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) A) (FiniteDimensional.finrank.{u3, max u2 u3} R (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))))))) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))))))) (n -> R) (Submodule.setLike.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Submodule.addCommGroup.{u3, max u2 u3} R (n -> R) (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) (Pi.addCommGroup.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))) (Submodule.module.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))))
-but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : LinearOrderedField.{u3} R] [_inst_4 : Finite.{succ u2} m] (A : Matrix.{u2, u1, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) A) (FiniteDimensional.finrank.{u3, max u1 u3} R (Subtype.{succ (max u1 u3)} (n -> R) (fun (x : n -> R) => Membership.mem.{max u1 u3, max u1 u3} (n -> R) (Submodule.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))))) (SetLike.instMembership.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))))) (n -> R) (Submodule.setLike.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))))) x (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A)))) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Submodule.addCommGroup.{u3, max u1 u3} R (n -> R) (StrictOrderedRing.toRing.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))) (Pi.addCommGroup.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A))) (Submodule.module.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_row Matrix.rank_eq_finrank_span_rowₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its rows.
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -210,7 +210,7 @@ include m_fin
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : DecidableEq.{succ u2} n] {M₁ : Type.{u4}} {M₂ : Type.{u5}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u5} M₂] [_inst_7 : Module.{u3, u4} R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u3, u5} R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6)] (A : Matrix.{u1, u2, u3} m n R) (v₁ : Basis.{u1, u3, u4} m R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u2, u3, u5} n R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, u4} R (coeSort.{succ u4, succ (succ u4)} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) Type.{u4} (SetLike.hasCoeToSort.{u4, u4} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, u4} R M₁ (CommRing.toRing.{u3} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+ forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -168,7 +168,7 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u1} m] (f : n -> m) (e : Equiv.{succ u2, succ u1} n m) (A : Matrix.{u1, u1, u3} m m R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A f (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e))) (Matrix.rank.{u1, u1, u3} m m R _inst_5 _inst_3 A)
but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix_le Matrix.rank_submatrix_leₓ'. -/
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
@@ -184,7 +184,7 @@ theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (e₁ : Equiv.{succ u1, succ u2} m n) (e₂ : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (coeFn.{max 1 (max (succ (max u1 u3)) (succ (max u2 u3))) (succ (max u2 u3)) (succ (max u1 u3)), max (succ (max u1 u3)) (succ (max u2 u3))} (Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) => (Matrix.{u1, u1, u3} m m R) -> (Matrix.{u2, u2, u3} n n R)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] [_inst_4 : Fintype.{u3} m] (e₁ : Equiv.{succ u3, succ u2} m n) (e₂ : Equiv.{succ u3, succ u2} m n) (A : Matrix.{u3, u3, u1} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 _inst_3 (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u2)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.{u3, u3, u1} m m R) (fun (_x : Matrix.{u3, u3, u1} m m R) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u3, u3, u1} m m R) => Matrix.{u2, u2, u1} n n R) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u2) (succ u1)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.reindex.{u1, u2, u3, u3, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u3, u3, u1} m m R _inst_4 _inst_3 A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] [_inst_4 : Fintype.{u3} m] (e₁ : Equiv.{succ u3, succ u2} m n) (e₂ : Equiv.{succ u3, succ u2} m n) (A : Matrix.{u3, u3, u1} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 _inst_3 (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u2)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.{u3, u3, u1} m m R) (fun (_x : Matrix.{u3, u3, u1} m m R) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Matrix.{u3, u3, u1} m m R) => Matrix.{u2, u2, u1} n n R) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u2) (succ u1)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.reindex.{u1, u2, u3, u3, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u3, u3, u1} m m R _inst_4 _inst_3 A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_reindex Matrix.rank_reindexₓ'. -/
theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
rank (reindex e₁ e₂ A) = rank A := by
@@ -196,7 +196,7 @@ theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (A : Matrix.{u1, u1, u3} m m R) (e₁ : Equiv.{succ u2, succ u1} n m) (e₂ : Equiv.{succ u2, succ u1} n m), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₁) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₂))) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : Fintype.{u3} m] (A : Matrix.{u3, u3, u2} m m R) (e₁ : Equiv.{succ u1, succ u3} n m) (e₂ : Equiv.{succ u1, succ u3} n m), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Matrix.submatrix.{u2, u1, u3, u3, u1} n m m n R A (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₁) (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₂))) (Matrix.rank.{u3, u3, u2} m m R _inst_4 _inst_3 A)
+ forall {m : Type.{u3}} {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : Fintype.{u3} m] (A : Matrix.{u3, u3, u2} m m R) (e₁ : Equiv.{succ u1, succ u3} n m) (e₂ : Equiv.{succ u1, succ u3} n m), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Matrix.submatrix.{u2, u1, u3, u3, u1} n m m n R A (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₁) (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₂))) (Matrix.rank.{u3, u3, u2} m m R _inst_4 _inst_3 A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix Matrix.rank_submatrixₓ'. -/
@[simp]
theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -210,7 +210,7 @@ include m_fin
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : DecidableEq.{succ u2} n] {M₁ : Type.{u4}} {M₂ : Type.{u5}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u5} M₂] [_inst_7 : Module.{u3, u4} R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u3, u5} R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6)] (A : Matrix.{u1, u2, u3} m n R) (v₁ : Basis.{u1, u3, u4} m R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u2, u3, u5} n R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, u4} R (coeSort.{succ u4, succ (succ u4)} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) Type.{u4} (SetLike.hasCoeToSort.{u4, u4} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, u4} R M₁ (CommRing.toRing.{u3} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+ forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.semilinearMapClass.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
@@ -294,7 +294,7 @@ variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -364,7 +364,7 @@ variable [Fintype m] [LinearOrderedField R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.semilinearMapClass.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_selfₓ'. -/
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -262,7 +262,7 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, max u1 u3} R (coeSort.{succ (max u1 u3), succ (succ (max u1 u3))} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) Type.{max u1 u3} (SetLike.hasCoeToSort.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (m -> R) (Submodule.setLike.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, max u1 u3} R (m -> R) (CommRing.toRing.{u3} R _inst_3) (Pi.addCommGroup.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Submodule.module.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_colsₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
@@ -294,7 +294,7 @@ variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -346,7 +346,7 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTransposeₓ'. -/
@[simp]
theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -59,7 +59,7 @@ noncomputable def rank (A : Matrix m n R) : ℕ :=
lean 3 declaration is
forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.hasOne.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (Fintype.card.{u1} n _inst_1)
but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.one.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Fintype.card.{u1} n _inst_1)
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.one.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toOne.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Fintype.card.{u1} n _inst_1)
Case conversion may be inaccurate. Consider using '#align matrix.rank_one Matrix.rank_oneₓ'. -/
@[simp]
theorem rank_one [StrongRankCondition R] [DecidableEq n] :
@@ -82,7 +82,7 @@ theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} n _inst_1)
but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1)
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1)
Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_width Matrix.rank_le_card_widthₓ'. -/
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
@@ -102,7 +102,7 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_left Matrix.rank_mul_le_leftₓ'. -/
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
@@ -116,7 +116,7 @@ include m_fin
lean 3 declaration is
forall {l : Type.{u1}} {m : Type.{u2}} {n : Type.{u3}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u3} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} l m R) (B : Matrix.{u2, u3, u4} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u1, u2, u3} l m n R m_fin (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u3, u4} m n R _inst_1 _inst_3 B)
but is expected to have type
- forall {l : Type.{u3}} {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} l m R) (B : Matrix.{u2, u1, u4} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u3, u2, u1} l m n R m_fin (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u1, u4} m n R _inst_1 _inst_3 B)
+ forall {l : Type.{u3}} {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} l m R) (B : Matrix.{u2, u1, u4} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u3, u2, u1} l m n R m_fin (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u1, u4} m n R _inst_1 _inst_3 B)
Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_right Matrix.rank_mul_le_rightₓ'. -/
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
(A ⬝ B).rank ≤ B.rank := by
@@ -131,7 +131,7 @@ omit m_fin
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (LinearOrder.min.{0} Nat Nat.linearOrder (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u3, u4} n o R _inst_2 _inst_3 B))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Min.min.{0} Nat instMinNat (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u1, u4} n o R _inst_2 _inst_3 B))
+ forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Min.min.{0} Nat instMinNat (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u1, u4} n o R _inst_2 _inst_3 B))
Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le Matrix.rank_mul_leₓ'. -/
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ min A.rank B.rank :=
@@ -142,7 +142,7 @@ theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R
lean 3 declaration is
forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _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) (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (Units.hasCoe.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))))))) A)) (Fintype.card.{u1} n _inst_1)
but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u2 u1} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b))))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Units.val.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A)) (Fintype.card.{u1} n _inst_1)
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u2 u1} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b))))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Units.val.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A)) (Fintype.card.{u1} n _inst_1)
Case conversion may be inaccurate. Consider using '#align matrix.rank_unit Matrix.rank_unitₓ'. -/
theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ) :
(A : Matrix n n R).rank = Fintype.card n :=
@@ -156,7 +156,7 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
lean 3 declaration is
forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
but is expected to have type
- forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
Case conversion may be inaccurate. Consider using '#align matrix.rank_of_is_unit Matrix.rank_of_isUnitₓ'. -/
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
A.rank = Fintype.card n := by
@@ -168,7 +168,7 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u1} m] (f : n -> m) (e : Equiv.{succ u2, succ u1} n m) (A : Matrix.{u1, u1, u3} m m R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A f (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e))) (Matrix.rank.{u1, u1, u3} m m R _inst_5 _inst_3 A)
but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix_le Matrix.rank_submatrix_leₓ'. -/
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
@@ -210,7 +210,7 @@ include m_fin
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : DecidableEq.{succ u2} n] {M₁ : Type.{u4}} {M₂ : Type.{u5}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u5} M₂] [_inst_7 : Module.{u3, u4} R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u3, u5} R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6)] (A : Matrix.{u1, u2, u3} m n R) (v₁ : Basis.{u1, u3, u4} m R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u2, u3, u5} n R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, u4} R (coeSort.{succ u4, succ (succ u4)} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) Type.{u4} (SetLike.hasCoeToSort.{u4, u4} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, u4} R M₁ (CommRing.toRing.{u3} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
but is expected to have type
- forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+ forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
@@ -240,7 +240,7 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} m m_fin)
but is expected to have type
- forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} m m_fin)
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} m m_fin)
Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_height Matrix.rank_le_card_heightₓ'. -/
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
by
@@ -262,7 +262,7 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, max u1 u3} R (coeSort.{succ (max u1 u3), succ (succ (max u1 u3))} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) Type.{max u1 u3} (SetLike.hasCoeToSort.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (m -> R) (Submodule.setLike.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, max u1 u3} R (m -> R) (CommRing.toRing.{u3} R _inst_3) (Pi.addCommGroup.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Submodule.module.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_colsₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
@@ -294,7 +294,7 @@ variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -314,7 +314,7 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_selfₓ'. -/
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank :=
by
@@ -330,7 +330,7 @@ theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.r
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} n m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose Matrix.rank_conjTransposeₓ'. -/
-- this follows the proof here https://math.stackexchange.com/a/81903/1896
/-- TODO: prove this in greater generality. -/
@@ -346,7 +346,7 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTransposeₓ'. -/
@[simp]
theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Eric Wieer
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 17219820a8aa8abe85adf5dfde19af1dd1bd8ae7
+! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -17,6 +17,9 @@ import Mathbin.Data.Complex.Module
/-!
# Rank of matrices
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The rank of a matrix `A` is defined to be the rank of range of the linear map corresponding to `A`.
This definition does not depend on the choice of basis, see `matrix.rank_eq_finrank_range_to_lin`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -291,7 +291,7 @@ variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
@@ -361,7 +361,7 @@ variable [Fintype m] [LinearOrderedField R]
lean 3 declaration is
forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) m n _inst_1 A))
but is expected to have type
- forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1177 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1180 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_selfₓ'. -/
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -45,22 +45,42 @@ section CommRing
variable [CommRing R]
+#print Matrix.rank /-
/-- The rank of a matrix is the rank of its image. -/
noncomputable def rank (A : Matrix m n R) : ℕ :=
finrank R A.mulVecLin.range
#align matrix.rank Matrix.rank
+-/
+/- warning: matrix.rank_one -> Matrix.rank_one is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.hasOne.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (Fintype.card.{u1} n _inst_1)
+but is expected to have type
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n], Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n R) 1 (One.toOfNat1.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.one.{u2, u1} n R (fun (a : n) (b : n) => _inst_5 a b) (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Fintype.card.{u1} n _inst_1)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_one Matrix.rank_oneₓ'. -/
@[simp]
theorem rank_one [StrongRankCondition R] [DecidableEq n] :
rank (1 : Matrix n n R) = Fintype.card n := by
rw [rank, mul_vec_lin_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
+/- warning: matrix.rank_zero -> Matrix.rank_zero is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Nontrivial.{u3} R], Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 (OfNat.ofNat.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) 0 (OfNat.mk.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) 0 (Zero.zero.{max u1 u2 u3} (Matrix.{u1, u2, u3} m n R) (Matrix.hasZero.{u3, u1, u2} m n R (MulZeroClass.toHasZero.{u3} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))
+but is expected to have type
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Nontrivial.{u3} R], Eq.{1} Nat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 (OfNat.ofNat.{max (max u2 u1) u3} (Matrix.{u2, u1, u3} m n R) 0 (Zero.toOfNat0.{max (max u2 u1) u3} (Matrix.{u2, u1, u3} m n R) (Matrix.zero.{u3, u2, u1} m n R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_zero Matrix.rank_zeroₓ'. -/
@[simp]
theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
rw [rank, mul_vec_lin_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
+/- warning: matrix.rank_le_card_width -> Matrix.rank_le_card_width is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} n _inst_1)
+but is expected to have type
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_width Matrix.rank_le_card_widthₓ'. -/
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
haveI : Module.Finite R (n → R) := Module.Finite.pi
@@ -68,11 +88,19 @@ theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank
exact A.mul_vec_lin.finrank_range_le.trans_eq (finrank_pi _)
#align matrix.rank_le_card_width Matrix.rank_le_card_width
+#print Matrix.rank_le_width /-
theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
A.rank ≤ n :=
A.rank_le_card_width.trans <| (Fintype.card_fin n).le
#align matrix.rank_le_width Matrix.rank_le_width
+-/
+/- warning: matrix.rank_mul_le_left -> Matrix.rank_mul_le_left is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_left Matrix.rank_mul_le_leftₓ'. -/
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, mul_vec_lin_mul]
@@ -81,6 +109,12 @@ theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix
include m_fin
+/- warning: matrix.rank_mul_le_right -> Matrix.rank_mul_le_right is a dubious translation:
+lean 3 declaration is
+ forall {l : Type.{u1}} {m : Type.{u2}} {n : Type.{u3}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u3} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} l m R) (B : Matrix.{u2, u3, u4} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u1, u2, u3} l m n R m_fin (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u3, u4} m n R _inst_1 _inst_3 B)
+but is expected to have type
+ forall {l : Type.{u3}} {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u4}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} l m R) (B : Matrix.{u2, u1, u4} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} l n R _inst_1 _inst_3 (Matrix.mul.{u4, u3, u2, u1} l m n R m_fin (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Matrix.rank.{u2, u1, u4} m n R _inst_1 _inst_3 B)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le_right Matrix.rank_mul_le_rightₓ'. -/
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
(A ⬝ B).rank ≤ B.rank := by
rw [rank, rank, mul_vec_lin_mul]
@@ -90,11 +124,23 @@ theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix
omit m_fin
+/- warning: matrix.rank_mul_le -> Matrix.rank_mul_le is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {o : Type.{u3}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u3} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u1, u2, u4} m n R) (B : Matrix.{u2, u3, u4} n o R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u3, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u1, u2, u3} m n o R _inst_1 (Distrib.toHasMul.{u4} R (Ring.toDistrib.{u4} R (CommRing.toRing.{u4} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toAddCommGroup.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (LinearOrder.min.{0} Nat Nat.linearOrder (Matrix.rank.{u1, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u3, u4} n o R _inst_2 _inst_3 B))
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {o : Type.{u1}} {R : Type.{u4}} [_inst_1 : Fintype.{u2} n] [_inst_2 : Fintype.{u1} o] [_inst_3 : CommRing.{u4} R] [_inst_4 : StrongRankCondition.{u4} R (Ring.toSemiring.{u4} R (CommRing.toRing.{u4} R _inst_3))] (A : Matrix.{u3, u2, u4} m n R) (B : Matrix.{u2, u1, u4} n o R), LE.le.{0} Nat instLENat (Matrix.rank.{u3, u1, u4} m o R _inst_2 _inst_3 (Matrix.mul.{u4, u3, u2, u1} m n o R _inst_1 (NonUnitalNonAssocRing.toMul.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} R (NonAssocRing.toNonUnitalNonAssocRing.{u4} R (Ring.toNonAssocRing.{u4} R (CommRing.toRing.{u4} R _inst_3))))) A B)) (Min.min.{0} Nat instMinNat (Matrix.rank.{u3, u2, u4} m n R _inst_1 _inst_3 A) (Matrix.rank.{u2, u1, u4} n o R _inst_2 _inst_3 B))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_mul_le Matrix.rank_mul_leₓ'. -/
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ min A.rank B.rank :=
le_min (rank_mul_le_left _ _) (rank_mul_le_right _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
+/- warning: matrix.rank_unit -> Matrix.rank_unit is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _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) (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (Units.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3)))) (Matrix.{u1, u1, u2} n n R) (Units.hasCoe.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))))))) A)) (Fintype.card.{u1} n _inst_1)
+but is expected to have type
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Units.{max u2 u1} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b))))), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Units.val.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A)) (Fintype.card.{u1} n _inst_1)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_unit Matrix.rank_unitₓ'. -/
theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ) :
(A : Matrix n n R).rank = Fintype.card n :=
by
@@ -103,12 +149,24 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
+/- warning: matrix.rank_of_is_unit -> Matrix.rank_of_isUnit is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.ring.{u2, u1} n R _inst_1 (fun (a : n) (b : n) => _inst_5 a b) (CommRing.toRing.{u2} R _inst_3))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
+but is expected to have type
+ forall {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : StrongRankCondition.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))] [_inst_5 : DecidableEq.{succ u1} n] (A : Matrix.{u1, u1, u2} n n R), (IsUnit.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u1, u1, u2} n n R) (Matrix.semiring.{u2, u1} n R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) _inst_1 (fun (a : n) (b : n) => _inst_5 a b)))) A) -> (Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 A) (Fintype.card.{u1} n _inst_1))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_of_is_unit Matrix.rank_of_isUnitₓ'. -/
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
A.rank = Fintype.card n := by
obtain ⟨A, rfl⟩ := h
exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
+/- warning: matrix.rank_submatrix_le -> Matrix.rank_submatrix_le is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u1} m] (f : n -> m) (e : Equiv.{succ u2, succ u1} n m) (A : Matrix.{u1, u1, u3} m m R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A f (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e))) (Matrix.rank.{u1, u1, u3} m m R _inst_5 _inst_3 A)
+but is expected to have type
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] [_inst_5 : Fintype.{u2} m] (f : n -> m) (e : Equiv.{succ u1, succ u2} n m) (A : Matrix.{u2, u2, u3} m m R), LE.le.{0} Nat instLENat (Matrix.rank.{u1, u1, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u1, u2, u2, u1} n m m n R A f (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (Equiv.{succ u1, succ u2} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u2} n m) e))) (Matrix.rank.{u2, u2, u3} m m R _inst_5 _inst_3 A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix_le Matrix.rank_submatrix_leₓ'. -/
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
(A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A :=
@@ -119,12 +177,24 @@ theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e :
exact Submodule.finrank_map_le _ _
#align matrix.rank_submatrix_le Matrix.rank_submatrix_le
+/- warning: matrix.rank_reindex -> Matrix.rank_reindex is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (e₁ : Equiv.{succ u1, succ u2} m n) (e₂ : Equiv.{succ u1, succ u2} m n) (A : Matrix.{u1, u1, u3} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (coeFn.{max 1 (max (succ (max u1 u3)) (succ (max u2 u3))) (succ (max u2 u3)) (succ (max u1 u3)), max (succ (max u1 u3)) (succ (max u2 u3))} (Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (fun (_x : Equiv.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) => (Matrix.{u1, u1, u3} m m R) -> (Matrix.{u2, u2, u3} n n R)) (Equiv.hasCoeToFun.{succ (max u1 u3), succ (max u2 u3)} (Matrix.{u1, u1, u3} m m R) (Matrix.{u2, u2, u3} n n R)) (Matrix.reindex.{u3, u2, u1, u1, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] [_inst_4 : Fintype.{u3} m] (e₁ : Equiv.{succ u3, succ u2} m n) (e₂ : Equiv.{succ u3, succ u2} m n) (A : Matrix.{u3, u3, u1} m m R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 _inst_3 (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u2)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.{u3, u3, u1} m m R) (fun (_x : Matrix.{u3, u3, u1} m m R) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Matrix.{u3, u3, u1} m m R) => Matrix.{u2, u2, u1} n n R) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u2) (succ u1)} (Matrix.{u3, u3, u1} m m R) (Matrix.{u2, u2, u1} n n R)) (Matrix.reindex.{u1, u2, u3, u3, u2} n m m n R e₁ e₂) A)) (Matrix.rank.{u3, u3, u1} m m R _inst_4 _inst_3 A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_reindex Matrix.rank_reindexₓ'. -/
theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
rank (reindex e₁ e₂ A) = rank A := by
rw [rank, rank, mul_vec_lin_reindex, LinearMap.range_comp, LinearMap.range_comp,
LinearEquiv.range, Submodule.map_top, LinearEquiv.finrank_map_eq]
#align matrix.rank_reindex Matrix.rank_reindex
+/- warning: matrix.rank_submatrix -> Matrix.rank_submatrix is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : Fintype.{u1} m] (A : Matrix.{u1, u1, u3} m m R) (e₁ : Equiv.{succ u2, succ u1} n m) (e₂ : Equiv.{succ u2, succ u1} n m), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 _inst_3 (Matrix.submatrix.{u3, u2, u1, u1, u2} n m m n R A (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₁) (coeFn.{max 1 (max (succ u2) (succ u1)) (succ u1) (succ u2), max (succ u2) (succ u1)} (Equiv.{succ u2, succ u1} n m) (fun (_x : Equiv.{succ u2, succ u1} n m) => n -> m) (Equiv.hasCoeToFun.{succ u2, succ u1} n m) e₂))) (Matrix.rank.{u1, u1, u3} m m R _inst_4 _inst_3 A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u1}} {R : Type.{u2}} [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : Fintype.{u3} m] (A : Matrix.{u3, u3, u2} m m R) (e₁ : Equiv.{succ u1, succ u3} n m) (e₂ : Equiv.{succ u1, succ u3} n m), Eq.{1} Nat (Matrix.rank.{u1, u1, u2} n n R _inst_1 _inst_3 (Matrix.submatrix.{u2, u1, u3, u3, u1} n m m n R A (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₁) (FunLike.coe.{max (succ u3) (succ u1), succ u1, succ u3} (Equiv.{succ u1, succ u3} n m) n (fun (_x : n) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : n) => m) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u3} n m) e₂))) (Matrix.rank.{u3, u3, u2} m m R _inst_4 _inst_3 A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_submatrix Matrix.rank_submatrixₓ'. -/
@[simp]
theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
rank (A.submatrix e₁ e₂) = rank A := by
@@ -133,6 +203,12 @@ theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
include m_fin
+/- warning: matrix.rank_eq_finrank_range_to_lin -> Matrix.rank_eq_finrank_range_toLin is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : DecidableEq.{succ u2} n] {M₁ : Type.{u4}} {M₂ : Type.{u5}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u5} M₂] [_inst_7 : Module.{u3, u4} R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u3, u5} R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6)] (A : Matrix.{u1, u2, u3} m n R) (v₁ : Basis.{u1, u3, u4} m R M₁ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u2, u3, u5} n R M₂ (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, u4} R (coeSort.{succ u4, succ (succ u4)} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) Type.{u4} (SetLike.hasCoeToSort.{u4, u4} (Submodule.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, u4} R M₁ (CommRing.toRing.{u3} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u3, u4} R M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u3, u3, u5, u4, max u5 u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.semilinearMapClass.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (RingHomSurjective.ids.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (coeFn.{max (succ (max u1 u2 u3)) (succ (max u5 u4)), max (succ (max u1 u2 u3)) (succ (max u5 u4))} (LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) (fun (_x : LinearEquiv.{u3, u3, max u1 u2 u3, max u5 u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))) => (Matrix.{u1, u2, u3} m n R) -> (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7)) (LinearEquiv.hasCoeToFun.{u3, u3, max u1 u2 u3, max u5 u4} R R (Matrix.{u1, u2, u3} m n R) (LinearMap.{u3, u3, u5, u4} R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.addCommMonoid.{u3, u1, u2} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))))) (LinearMap.addCommMonoid.{u3, u3, u5, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Matrix.module.{u3, u1, u2, u3} m n R R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (LinearMap.module.{u3, u3, u3, u5, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) _inst_7 (Matrix.toLin._proof_3.{u3, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)))) (Matrix.toLin._proof_1.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3)) (Matrix.toLin._proof_2.{u3} R (CommRing.toCommSemiring.{u3} R _inst_3))) (Matrix.toLin.{u3, u1, u2, u5, u4} R (CommRing.toCommSemiring.{u3} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u5} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+but is expected to have type
+ forall {m : Type.{u1}} {n : Type.{u5}} {R : Type.{u2}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u5} n] [_inst_3 : CommRing.{u2} R] [_inst_4 : DecidableEq.{succ u5} n] {M₁ : Type.{u4}} {M₂ : Type.{u3}} [_inst_5 : AddCommGroup.{u4} M₁] [_inst_6 : AddCommGroup.{u3} M₂] [_inst_7 : Module.{u2, u4} R M₁ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5)] [_inst_8 : Module.{u2, u3} R M₂ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6)] (A : Matrix.{u1, u5, u2} m n R) (v₁ : Basis.{u1, u2, u4} m R M₁ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (v₂ : Basis.{u5, u2, u3} n R M₂ (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) _inst_8), Eq.{1} Nat (Matrix.rank.{u1, u5, u2} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u2, u4} R (Subtype.{succ u4} M₁ (fun (x : M₁) => Membership.mem.{u4, u4} M₁ (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) (SetLike.instMembership.{u4, u4} (Submodule.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7) M₁ (Submodule.setLike.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)) x (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (a : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) a) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A)))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)) (Submodule.addCommGroup.{u2, u4} R M₁ (CommRing.toRing.{u2} R _inst_3) _inst_5 _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))) (Submodule.module.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7 (LinearMap.range.{u2, u2, u3, u4, max u4 u3} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) A) (LinearMap.instSemilinearMapClassLinearMap.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (RingHomSurjective.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (FunLike.coe.{max (max (max (max (succ u1) (succ u5)) (succ u2)) (succ u4)) (succ u3), max (max (succ u1) (succ u5)) (succ u2), max (succ u4) (succ u3)} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (Matrix.{u1, u5, u2} m n R) (fun (_x : Matrix.{u1, u5, u2} m n R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u1, u5, u2} m n R) => LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) _x) (SMulHomClass.toFunLike.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (SMulZeroClass.toSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toZero.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribSMul.toSMulZeroClass.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (AddMonoid.toAddZeroClass.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (DistribMulAction.toDistribSMul.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (SMulZeroClass.toSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toZero.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribSMul.toSMulZeroClass.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddMonoid.toAddZeroClass.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (DistribMulAction.toDistribSMul.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max (max u1 u5) u2) u4) u3, u2, max (max u1 u5) u2, max u4 u3} (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (AddCommMonoid.toAddMonoid.{max (max u1 u5) u2} (Matrix.{u1, u5, u2} m n R) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (AddCommMonoid.toAddMonoid.{max u4 u3} (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Module.toDistribMulAction.{u2, max (max u1 u5) u2} R (Matrix.{u1, u5, u2} m n R) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Module.toDistribMulAction.{u2, max u4 u3} R (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (SemilinearMapClass.distribMulActionHomClass.{u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (SemilinearEquivClass.instSemilinearMapClass.{u2, u2, max (max u1 u5) u2, max u4 u3, max (max (max (max u1 u5) u2) u4) u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (LinearEquiv.{u2, u2, max (max u2 u5) u1, max u4 u3} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7))))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u2, u2, max (max u1 u5) u2, max u4 u3} R R (Matrix.{u1, u5, u2} m n R) (LinearMap.{u2, u2, u3, u4} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (Matrix.addCommMonoid.{u2, u1, u5} m n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (LinearMap.addCommMonoid.{u2, u2, u3, u4} R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Matrix.module.{u2, u1, u5, u2} m n R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (LinearMap.instModuleLinearMapAddCommMonoid.{u2, u2, u2, u3, u4} R R R M₂ M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) _inst_7 (smulCommClass_self.{u2, u4} R M₁ (CommSemiring.toCommMonoid.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (MulActionWithZero.toMulAction.{u2, u4} R M₁ (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (AddMonoid.toZero.{u4} M₁ (AddCommMonoid.toAddMonoid.{u4} M₁ (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5))) (Module.toMulActionWithZero.{u2, u4} R M₁ (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_7)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (RingHomInvPair.ids.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) (Matrix.toLin.{u2, u1, u5, u3, u4} R (CommRing.toCommSemiring.{u2} R _inst_3) m n _inst_1 m_fin (fun (a : n) (b : n) => _inst_4 a b) M₂ M₁ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_6) (AddCommGroup.toAddCommMonoid.{u4} M₁ _inst_5) _inst_8 _inst_7 v₂ v₁) A))))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLinₓ'. -/
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
(v₂ : Basis n R M₂) : A.rank = finrank R (toLin v₂ v₁ A).range :=
@@ -157,6 +233,12 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
+/- warning: matrix.rank_le_card_height -> Matrix.rank_le_card_height is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [m_fin : Fintype.{u1} m] [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u1, u2, u3} m n R), LE.le.{0} Nat Nat.hasLe (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u1} m m_fin)
+but is expected to have type
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [m_fin : Fintype.{u2} m] [_inst_1 : Fintype.{u1} n] [_inst_3 : CommRing.{u3} R] [_inst_4 : StrongRankCondition.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))] (A : Matrix.{u2, u1, u3} m n R), LE.le.{0} Nat instLENat (Matrix.rank.{u2, u1, u3} m n R _inst_1 _inst_3 A) (Fintype.card.{u2} m m_fin)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_le_card_height Matrix.rank_le_card_heightₓ'. -/
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
by
haveI : Module.Finite R (m → R) := Module.Finite.pi
@@ -166,11 +248,19 @@ theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank
omit m_fin
+#print Matrix.rank_le_height /-
theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
A.rank ≤ m :=
A.rank_le_card_height.trans <| (Fintype.card_fin m).le
#align matrix.rank_le_height Matrix.rank_le_height
+-/
+/- warning: matrix.rank_eq_finrank_span_cols -> Matrix.rank_eq_finrank_span_cols is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u3, max u1 u3} R (coeSort.{succ (max u1 u3), succ (succ (max u1 u3))} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) Type.{max u1 u3} (SetLike.hasCoeToSort.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (m -> R) (Submodule.setLike.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Submodule.addCommGroup.{u3, max u1 u3} R (m -> R) (CommRing.toRing.{u3} R _inst_3) (Pi.addCommGroup.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))) (Submodule.module.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Submodule.span.{u3, max u1 u3} R (m -> R) (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3)))))) (Pi.Function.module.{u1, u3, u3} m R R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)) (AddCommGroup.toAddCommMonoid.{u3} R (NonUnitalNonAssocRing.toAddCommGroup.{u3} R (NonAssocRing.toNonUnitalNonAssocRing.{u3} R (Ring.toNonAssocRing.{u3} R (CommRing.toRing.{u3} R _inst_3))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (CommRing.toRing.{u3} R _inst_3)))) (Set.range.{max u1 u3, succ u2} (m -> R) n (Matrix.transpose.{u3, u1, u2} m n R A)))))
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u2, u1} m n R _inst_1 _inst_3 A) (FiniteDimensional.finrank.{u1, max u3 u1} R (Subtype.{succ (max u3 u1)} (m -> R) (fun (x : m -> R) => Membership.mem.{max u3 u1, max u3 u1} (m -> R) (Submodule.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (SetLike.instMembership.{max u3 u1, max u3 u1} (Submodule.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (m -> R) (Submodule.setLike.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) x (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Submodule.addCommGroup.{u1, max u3 u1} R (m -> R) (CommRing.toRing.{u1} R _inst_3) (Pi.addCommGroup.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => Ring.toAddCommGroup.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))) (Submodule.module.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Submodule.span.{u1, max u3 u1} R (m -> R) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Algebra.toModule.{u1, max u3 u1} R (m -> R) (CommRing.toCommSemiring.{u1} R _inst_3) (Pi.semiring.{u3, u1} m (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Pi.algebra.{u3, u1, u1} m R (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : m) => R) (CommRing.toCommSemiring.{u1} R _inst_3) (fun (i : m) => Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (fun (i : m) => Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Set.range.{max u3 u1, succ u2} (m -> R) n (Matrix.transpose.{u1, u3, u2} m n R A)))))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_colsₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its columns. -/
theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
A.rank = finrank R (Submodule.span R (Set.range Aᵀ)) := by rw [rank, Matrix.range_mulVecLin]
@@ -197,6 +287,12 @@ section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
+/- warning: matrix.ker_mul_vec_lin_conj_transpose_mul_self -> Matrix.ker_mulVecLin_conjTranspose_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (Field.toSemifield.{u3} R _inst_4)) m n _inst_1 A))
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u2, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)))))) (Matrix.mulVecLin.{u1, u3, u2} R (Semifield.toCommSemiring.{u1} R (Field.toSemifield.{u1} R _inst_4)) m n _inst_1 A))
+Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_selfₓ'. -/
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -211,6 +307,12 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
+/- warning: matrix.rank_conj_transpose_mul_self -> Matrix.rank_conjTranspose_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_selfₓ'. -/
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -221,6 +323,12 @@ theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.r
rw [ker_mul_vec_lin_conj_transpose_mul_self]
#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
+/- warning: matrix.rank_conj_transpose -> Matrix.rank_conjTranspose is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} n m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarAddMonoid.toInvolutiveStar.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (StarRing.toStarAddMonoid.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_conj_transpose Matrix.rank_conjTransposeₓ'. -/
-- this follows the proof here https://math.stackexchange.com/a/81903/1896
/-- TODO: prove this in greater generality. -/
@[simp]
@@ -231,6 +339,12 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
((rank_conjTranspose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_conj_transpose Matrix.rank_conjTranspose
+/- warning: matrix.rank_self_mul_conj_transpose -> Matrix.rank_self_mul_conjTranspose is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : Field.{u3} R] [_inst_5 : PartialOrder.{u3} R] [_inst_6 : StarOrderedRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StarOrderedRing.orderedAddCommGroup.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u3, u1, u2} m n R (InvolutiveStar.toHasStar.{u3} R (StarAddMonoid.toHasInvolutiveStar.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)))))))) (StarRing.toStarAddMonoid.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) (StarOrderedRing.toStarRing.{u3} R (NonUnitalRing.toNonUnitalSemiring.{u3} R (NonUnitalCommRing.toNonUnitalRing.{u3} R (CommRing.toNonUnitalCommRing.{u3} R (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R _inst_4)) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : Field.{u1} R] [_inst_5 : PartialOrder.{u1} R] [_inst_6 : StarOrderedRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R _inst_4))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} R (StarOrderedRing.instOrderedAddCommGroup.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)))) _inst_5 _inst_6))) A (Matrix.conjTranspose.{u1, u3, u2} m n R (InvolutiveStar.toStar.{u1} R (StarSemigroup.toInvolutiveStar.{u1} R (SemigroupWithZero.toSemigroup.{u1} R (NonUnitalSemiring.toSemigroupWithZero.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))))) (StarRing.toStarSemigroup.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) (StarOrderedRing.toStarRing.{u1} R (NonUnitalRing.toNonUnitalSemiring.{u1} R (NonUnitalCommRing.toNonUnitalRing.{u1} R (CommRing.toNonUnitalCommRing.{u1} R (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4))))) _inst_5 _inst_6)))) A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R _inst_4)) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTransposeₓ'. -/
@[simp]
theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
simpa only [rank_conj_transpose, conj_transpose_conj_transpose] using
@@ -243,6 +357,12 @@ section LinearOrderedField
variable [Fintype m] [LinearOrderedField R]
+/- warning: matrix.ker_mul_vec_lin_transpose_mul_self -> Matrix.ker_mulVecLin_transpose_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{succ (max u2 u3)} (Submodule.{u3, max u2 u3} R (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.ker.{u3, u3, max u2 u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u2 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u2 u3} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u2, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) n n _inst_1 (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A))) (LinearMap.ker.{u3, u3, max u2 u3, max u1 u3, max (max u2 u3) u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (LinearMap.{u3, u3, max u2 u3, max u1 u3} R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (LinearMap.semilinearMapClass.{u3, u3, max u2 u3, max u1 u3} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.addCommMonoid.{u1, u3} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))))) (Pi.Function.module.{u2, u3, u3} n R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (Pi.Function.module.{u1, u3, u3} m R R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Semiring.toModule.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4)))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))))))) (Matrix.mulVecLin.{u3, u1, u2} R (Semifield.toCommSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_4))) m n _inst_1 A))
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{max (succ u2) (succ u1)} (Submodule.{u1, max u2 u1} R (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.ker.{u1, u1, max u2 u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u2} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (n -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u2 u1} R R (n -> R) (n -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u2, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) n n _inst_1 (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A))) (LinearMap.ker.{u1, u1, max u2 u1, max u3 u1, max (max u2 u3) u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (LinearMap.{u1, u1, max u1 u2, max u1 u3} R R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (n -> R) (m -> R) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u1, max u3 u1} R R (n -> R) (m -> R) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.addCommMonoid.{u3, u1} m (fun (ᾰ : m) => R) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1179 : n) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : n) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (Pi.module.{u3, u1, u1} m (fun (a._@.Mathlib.LinearAlgebra.Matrix.ToLin._hyg.1182 : m) => R) R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))) (fun (i : m) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (fun (i : m) => Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4))))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))))) (Matrix.mulVecLin.{u1, u3, u2} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))) m n _inst_1 A))
+Case conversion may be inaccurate. Consider using '#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_selfₓ'. -/
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
by
@@ -256,6 +376,12 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
rw [h, mul_vec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
+/- warning: matrix.rank_transpose_mul_self -> Matrix.rank_transpose_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u3} n n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.mul.{u3, u2, u1, u2} n m n R _inst_3 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) (Matrix.transpose.{u3, u1, u2} m n R A) A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u2, u1} n n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.mul.{u1, u2, u3, u2} n m n R _inst_3 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) (Matrix.transpose.{u1, u3, u2} m n R A) A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_selfₓ'. -/
theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank :=
by
dsimp only [rank]
@@ -266,6 +392,12 @@ theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank
rw [ker_mul_vec_lin_transpose_mul_self]
#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
+/- warning: matrix.rank_transpose -> Matrix.rank_transpose is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} n m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.transpose.{u3, u1, u2} m n R A)) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u2, u3, u1} n m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.transpose.{u1, u3, u2} m n R A)) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_transpose Matrix.rank_transposeₓ'. -/
/-- TODO: prove this in greater generality. -/
@[simp]
theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
@@ -273,6 +405,12 @@ theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
#align matrix.rank_transpose Matrix.rank_transpose
+/- warning: matrix.rank_self_mul_transpose -> Matrix.rank_self_mul_transpose is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u1} m] [_inst_4 : LinearOrderedField.{u3} R] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u1, u3} m m R _inst_3 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) (Matrix.mul.{u3, u1, u2, u1} m n m R _inst_1 (Distrib.toHasMul.{u3} R (Ring.toDistrib.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_4)))))) A (Matrix.transpose.{u3, u1, u2} m n R A))) (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_4))) A)
+but is expected to have type
+ forall {m : Type.{u3}} {n : Type.{u2}} {R : Type.{u1}} [_inst_1 : Fintype.{u2} n] [_inst_3 : Fintype.{u3} m] [_inst_4 : LinearOrderedField.{u1} R] (A : Matrix.{u3, u2, u1} m n R), Eq.{1} Nat (Matrix.rank.{u3, u3, u1} m m R _inst_3 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) (Matrix.mul.{u1, u3, u2, u3} m n m R _inst_1 (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_4))))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_4)))))) A (Matrix.transpose.{u1, u3, u2} m n R A))) (Matrix.rank.{u3, u2, u1} m n R _inst_1 (EuclideanDomain.toCommRing.{u1} R (Field.toEuclideanDomain.{u1} R (LinearOrderedField.toField.{u1} R _inst_4))) A)
+Case conversion may be inaccurate. Consider using '#align matrix.rank_self_mul_transpose Matrix.rank_self_mul_transposeₓ'. -/
@[simp]
theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank := by
simpa only [rank_transpose, transpose_transpose] using rank_transpose_mul_self Aᵀ
@@ -280,6 +418,12 @@ theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank
end LinearOrderedField
+/- warning: matrix.rank_eq_finrank_span_row -> Matrix.rank_eq_finrank_span_row is a dubious translation:
+lean 3 declaration is
+ forall {m : Type.{u1}} {n : Type.{u2}} {R : Type.{u3}} [_inst_1 : Fintype.{u2} n] [_inst_3 : LinearOrderedField.{u3} R] [_inst_4 : Finite.{succ u1} m] (A : Matrix.{u1, u2, u3} m n R), Eq.{1} Nat (Matrix.rank.{u1, u2, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) A) (FiniteDimensional.finrank.{u3, max u2 u3} R (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))))))) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))))))) (n -> R) (Submodule.setLike.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Submodule.addCommGroup.{u3, max u2 u3} R (n -> R) (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) (Pi.addCommGroup.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))) (Submodule.module.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Submodule.span.{u3, max u2 u3} R (n -> R) (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (Pi.addCommMonoid.{u2, u3} n (fun (ᾰ : n) => R) (fun (i : n) => AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3))))))) (Pi.Function.module.{u2, u3, u3} n R R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))) (AddCommGroup.toAddCommMonoid.{u3} R (OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_3)))))) (Set.range.{max u2 u3, succ u1} (n -> R) m A))))
+but is expected to have type
+ forall {m : Type.{u2}} {n : Type.{u1}} {R : Type.{u3}} [_inst_1 : Fintype.{u1} n] [_inst_3 : LinearOrderedField.{u3} R] [_inst_4 : Finite.{succ u2} m] (A : Matrix.{u2, u1, u3} m n R), Eq.{1} Nat (Matrix.rank.{u2, u1, u3} m n R _inst_1 (EuclideanDomain.toCommRing.{u3} R (Field.toEuclideanDomain.{u3} R (LinearOrderedField.toField.{u3} R _inst_3))) A) (FiniteDimensional.finrank.{u3, max u1 u3} R (Subtype.{succ (max u1 u3)} (n -> R) (fun (x : n -> R) => Membership.mem.{max u1 u3, max u1 u3} (n -> R) (Submodule.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))))) (SetLike.instMembership.{max u1 u3, max u1 u3} (Submodule.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))))) (n -> R) (Submodule.setLike.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))))) x (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A)))) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Submodule.addCommGroup.{u3, max u1 u3} R (n -> R) (StrictOrderedRing.toRing.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))) (Pi.addCommGroup.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedAddCommGroup.toAddCommGroup.{u3} R (StrictOrderedRing.toOrderedAddCommGroup.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_3)))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A))) (Submodule.module.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Submodule.span.{u3, max u1 u3} R (n -> R) (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (Pi.addCommMonoid.{u1, u3} n (fun (ᾰ : n) => R) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Pi.module.{u1, u3, u3} n (fun (a._@.Mathlib.Data.Matrix.Basic._hyg.12 : n) => R) R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))) (fun (i : n) => OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3)))))) (fun (i : n) => Semiring.toModule.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u3} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_3))))))) (Set.range.{max u1 u3, succ u2} (n -> R) m A))))
+Case conversion may be inaccurate. Consider using '#align matrix.rank_eq_finrank_span_row Matrix.rank_eq_finrank_span_rowₓ'. -/
/-- The rank of a matrix is the rank of the space spanned by its rows.
TODO: prove this in a generality that works for `ℂ` too, not just `ℚ` and `ℝ`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -1,15 +1,18 @@
/-
Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Johan Commelin
+Authors: Johan Commelin, Eric Wieer
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
+! leanprover-community/mathlib commit 17219820a8aa8abe85adf5dfde19af1dd1bd8ae7
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.LinearAlgebra.FreeModule.Finite.Rank
import Mathbin.LinearAlgebra.Matrix.ToLin
+import Mathbin.LinearAlgebra.FiniteDimensional
+import Mathbin.LinearAlgebra.Matrix.DotProduct
+import Mathbin.Data.Complex.Module
/-!
# Rank of matrices
@@ -23,7 +26,9 @@ This definition does not depend on the choice of basis, see `matrix.rank_eq_finr
## TODO
-* Show that `matrix.rank` is equal to the row-rank, and that `rank Aᵀ = rank A`.
+* Do a better job of generalizing over `ℚ`, `ℝ`, and `ℂ` in `matrix.rank_transpose` and
+ `matrix.rank_conj_transpose`. See
+ [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/row.20rank.20equals.20column.20rank/near/350462992).
-/
@@ -36,6 +41,8 @@ open FiniteDimensional
variable {l m n o R : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
+section CommRing
+
variable [CommRing R]
/-- The rank of a matrix is the rank of its image. -/
@@ -109,8 +116,7 @@ theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e :
rw [rank, rank, mul_vec_lin_submatrix, LinearMap.range_comp, LinearMap.range_comp,
show LinearMap.funLeft R R e.symm = LinearEquiv.funCongrLeft R R e.symm from rfl,
LinearEquiv.range, Submodule.map_top]
- -- TODO: generalize `finite_dimensional.finrank_map_le` and use it here
- exact finrank_le_finrank_of_rank_le_rank (lift_rank_map_le _ _) (rank_lt_aleph_0 _ _)
+ exact Submodule.finrank_map_le _ _
#align matrix.rank_submatrix_le Matrix.rank_submatrix_le
theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
@@ -170,5 +176,119 @@ theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
A.rank = finrank R (Submodule.span R (Set.range Aᵀ)) := by rw [rank, Matrix.range_mulVecLin]
#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_cols
+end CommRing
+
+/-! ### Lemmas about transpose and conjugate transpose
+
+This section contains lemmas about the rank of `matrix.transpose` and `matrix.conj_transpose`.
+
+Unfortunately the proofs are essentially duplicated between the two; `ℚ` is a linearly-ordered ring
+but can't be a star-ordered ring, while `ℂ` is star-ordered (with `open_locale complex_order`) but
+not linearly ordered. For now we don't prove the transpose case for `ℂ`.
+
+TODO: the lemmas `matrix.rank_transpose` and `matrix.rank_conj_transpose` current follow a short
+proof that is a simple consequence of `matrix.rank_transpose_mul_self` and
+`matrix.rank_conj_transpose_mul_self`. This proof pulls in unecessary assumptions on `R`, and should
+be replaced with a proof that uses Gaussian reduction or argues via linear combinations.
+-/
+
+
+section StarOrderedField
+
+variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
+
+theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
+ LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
+ by
+ ext x
+ simp only [LinearMap.mem_ker, mul_vec_lin_apply, ← mul_vec_mul_vec]
+ constructor
+ · intro h
+ replace h := congr_arg (dot_product (star x)) h
+ rwa [dot_product_mul_vec, dot_product_zero, vec_mul_conj_transpose, star_star,
+ dot_product_star_self_eq_zero] at h
+ · intro h
+ rw [h, mul_vec_zero]
+#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
+
+theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank :=
+ by
+ dsimp only [rank]
+ refine' add_left_injective (finrank R A.mul_vec_lin.ker) _
+ dsimp only
+ rw [LinearMap.finrank_range_add_finrank_ker, ← (Aᴴ ⬝ A).mulVecLin.finrank_range_add_finrank_ker]
+ congr 1
+ rw [ker_mul_vec_lin_conj_transpose_mul_self]
+#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
+
+-- this follows the proof here https://math.stackexchange.com/a/81903/1896
+/-- TODO: prove this in greater generality. -/
+@[simp]
+theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
+ le_antisymm
+ (((rank_conjTranspose_mul_self _).symm.trans_le <| rank_mul_le_left _ _).trans_eq <|
+ congr_arg _ <| conjTranspose_conjTranspose _)
+ ((rank_conjTranspose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
+#align matrix.rank_conj_transpose Matrix.rank_conjTranspose
+
+@[simp]
+theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
+ simpa only [rank_conj_transpose, conj_transpose_conj_transpose] using
+ rank_conj_transpose_mul_self Aᴴ
+#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTranspose
+
+end StarOrderedField
+
+section LinearOrderedField
+
+variable [Fintype m] [LinearOrderedField R]
+
+theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
+ LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) :=
+ by
+ ext x
+ simp only [LinearMap.mem_ker, mul_vec_lin_apply, ← mul_vec_mul_vec]
+ constructor
+ · intro h
+ replace h := congr_arg (dot_product x) h
+ rwa [dot_product_mul_vec, dot_product_zero, vec_mul_transpose, dot_product_self_eq_zero] at h
+ · intro h
+ rw [h, mul_vec_zero]
+#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
+
+theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank :=
+ by
+ dsimp only [rank]
+ refine' add_left_injective (finrank R A.mul_vec_lin.ker) _
+ dsimp only
+ rw [LinearMap.finrank_range_add_finrank_ker, ← (Aᵀ ⬝ A).mulVecLin.finrank_range_add_finrank_ker]
+ congr 1
+ rw [ker_mul_vec_lin_transpose_mul_self]
+#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
+
+/-- TODO: prove this in greater generality. -/
+@[simp]
+theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
+ le_antisymm ((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
+ ((rank_transpose_mul_self _).symm.trans_le <| rank_mul_le_left _ _)
+#align matrix.rank_transpose Matrix.rank_transpose
+
+@[simp]
+theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank := by
+ simpa only [rank_transpose, transpose_transpose] using rank_transpose_mul_self Aᵀ
+#align matrix.rank_self_mul_transpose Matrix.rank_self_mul_transpose
+
+end LinearOrderedField
+
+/-- The rank of a matrix is the rank of the space spanned by its rows.
+
+TODO: prove this in a generality that works for `ℂ` too, not just `ℚ` and `ℝ`. -/
+theorem rank_eq_finrank_span_row [LinearOrderedField R] [Finite m] (A : Matrix m n R) :
+ A.rank = finrank R (Submodule.span R (Set.range A)) :=
+ by
+ cases nonempty_fintype m
+ rw [← rank_transpose, rank_eq_finrank_span_cols, transpose_transpose]
+#align matrix.rank_eq_finrank_span_row Matrix.rank_eq_finrank_span_row
+
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 86add5ce96b35c2cc6ee6946ab458e7302584e21
+! leanprover-community/mathlib commit 0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -102,6 +102,29 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
+/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
+theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
+ (A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A :=
+ by
+ rw [rank, rank, mul_vec_lin_submatrix, LinearMap.range_comp, LinearMap.range_comp,
+ show LinearMap.funLeft R R e.symm = LinearEquiv.funCongrLeft R R e.symm from rfl,
+ LinearEquiv.range, Submodule.map_top]
+ -- TODO: generalize `finite_dimensional.finrank_map_le` and use it here
+ exact finrank_le_finrank_of_rank_le_rank (lift_rank_map_le _ _) (rank_lt_aleph_0 _ _)
+#align matrix.rank_submatrix_le Matrix.rank_submatrix_le
+
+theorem rank_reindex [Fintype m] (e₁ e₂ : m ≃ n) (A : Matrix m m R) :
+ rank (reindex e₁ e₂ A) = rank A := by
+ rw [rank, rank, mul_vec_lin_reindex, LinearMap.range_comp, LinearMap.range_comp,
+ LinearEquiv.range, Submodule.map_top, LinearEquiv.finrank_map_eq]
+#align matrix.rank_reindex Matrix.rank_reindex
+
+@[simp]
+theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
+ rank (A.submatrix e₁ e₂) = rank A := by
+ simpa only [reindex_apply] using rank_reindex e₁.symm e₂.symm A
+#align matrix.rank_submatrix Matrix.rank_submatrix
+
include m_fin
theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ebf83ed9c262adbf983ef64d5e8c2ae94b625f4
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit b5b5dd5a47b5744260e2c9185013075ce9dadccd
+! leanprover-community/mathlib commit 86add5ce96b35c2cc6ee6946ab458e7302584e21
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -23,7 +23,7 @@ This definition does not depend on the choice of basis, see `matrix.rank_eq_finr
## TODO
-* Show that `matrix.rank` is equal to the row-rank and column-rank
+* Show that `matrix.rank` is equal to the row-rank, and that `rank Aᵀ = rank A`.
-/
@@ -34,30 +34,31 @@ namespace Matrix
open FiniteDimensional
-variable {m n o R : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
+variable {l m n o R : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
-variable [DecidableEq n] [DecidableEq o] [CommRing R]
+variable [CommRing R]
/-- The rank of a matrix is the rank of its image. -/
noncomputable def rank (A : Matrix m n R) : ℕ :=
- finrank R A.toLin'.range
+ finrank R A.mulVecLin.range
#align matrix.rank Matrix.rank
@[simp]
-theorem rank_one [StrongRankCondition R] : rank (1 : Matrix n n R) = Fintype.card n := by
- rw [rank, to_lin'_one, LinearMap.range_id, finrank_top, finrank_pi]
+theorem rank_one [StrongRankCondition R] [DecidableEq n] :
+ rank (1 : Matrix n n R) = Fintype.card n := by
+ rw [rank, mul_vec_lin_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
@[simp]
theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
- rw [rank, LinearEquiv.map_zero, LinearMap.range_zero, finrank_bot]
+ rw [rank, mul_vec_lin_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
haveI : Module.Finite R (n → R) := Module.Finite.pi
haveI : Module.Free R (n → R) := Module.Free.pi _ _
- exact A.to_lin'.finrank_range_le.trans_eq (finrank_pi _)
+ exact A.mul_vec_lin.finrank_range_le.trans_eq (finrank_pi _)
#align matrix.rank_le_card_width Matrix.rank_le_card_width
theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
@@ -65,21 +66,37 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
A.rank_le_card_width.trans <| (Fintype.card_fin n).le
#align matrix.rank_le_width Matrix.rank_le_width
-theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
+theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
- rw [rank, rank, to_lin'_mul]
+ rw [rank, rank, mul_vec_lin_mul]
exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph_0 _ _) (LinearMap.rank_comp_le_left _ _)
+#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
+
+include m_fin
+
+theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
+ (A ⬝ B).rank ≤ B.rank := by
+ rw [rank, rank, mul_vec_lin_mul]
+ exact
+ finrank_le_finrank_of_rank_le_rank (LinearMap.lift_rank_comp_le_right _ _) (rank_lt_aleph_0 _ _)
+#align matrix.rank_mul_le_right Matrix.rank_mul_le_right
+
+omit m_fin
+
+theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
+ (A ⬝ B).rank ≤ min A.rank B.rank :=
+ le_min (rank_mul_le_left _ _) (rank_mul_le_right _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
-theorem rank_unit [StrongRankCondition R] (A : (Matrix n n R)ˣ) :
+theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ) :
(A : Matrix n n R).rank = Fintype.card n :=
by
refine' le_antisymm (rank_le_card_width A) _
- have := rank_mul_le (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
+ have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
-theorem rank_of_isUnit [StrongRankCondition R] (A : Matrix n n R) (h : IsUnit A) :
+theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
A.rank = Fintype.card n := by
obtain ⟨A, rfl⟩ := h
exact rank_unit A
@@ -87,9 +104,9 @@ theorem rank_of_isUnit [StrongRankCondition R] (A : Matrix n n R) (h : IsUnit A)
include m_fin
-theorem rank_eq_finrank_range_toLin {M₁ M₂ : Type _} [AddCommGroup M₁] [AddCommGroup M₂]
- [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁) (v₂ : Basis n R M₂) :
- A.rank = finrank R (toLin v₂ v₁ A).range :=
+theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
+ [AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
+ (v₂ : Basis n R M₂) : A.rank = finrank R (toLin v₂ v₁ A).range :=
by
let e₁ := (Pi.basisFun R m).Equiv v₁ (Equiv.refl _)
let e₂ := (Pi.basisFun R n).Equiv v₂ (Equiv.refl _)
@@ -105,7 +122,7 @@ theorem rank_eq_finrank_range_toLin {M₁ M₂ : Type _} [AddCommGroup M₁] [Ad
apply LinearMap.ext_ring
have aux₁ := to_lin_self (Pi.basisFun R n) (Pi.basisFun R m) A i
have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
- rw [to_lin_eq_to_lin'] at aux₁
+ rw [to_lin_eq_to_lin', to_lin'_apply'] at aux₁
rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
@@ -125,5 +142,10 @@ theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (
A.rank_le_card_height.trans <| (Fintype.card_fin m).le
#align matrix.rank_le_height Matrix.rank_le_height
+/-- The rank of a matrix is the rank of the space spanned by its columns. -/
+theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
+ A.rank = finrank R (Submodule.span R (Set.range Aᵀ)) := by rw [rank, Matrix.range_mulVecLin]
+#align matrix.rank_eq_finrank_span_cols Matrix.rank_eq_finrank_span_cols
+
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/347636a7a80595d55bedf6e6fbd996a3c39da69a
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 45ce3929e3bf9a086a216feea3b1ab6c14bf0e67
+! leanprover-community/mathlib commit b5b5dd5a47b5744260e2c9185013075ce9dadccd
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -68,11 +68,7 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, to_lin'_mul]
- refine' Cardinal.toNat_le_of_le_of_lt_aleph0 _ (LinearMap.rank_comp_le_left _ _)
- rw [← Cardinal.lift_lt_aleph0]
- have := lift_rank_range_le A.to_lin'
- rw [rank_fun', Cardinal.lift_natCast] at this
- exact this.trans_lt (Cardinal.nat_lt_aleph0 (Fintype.card n))
+ exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph_0 _ _) (LinearMap.rank_comp_le_left _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
theorem rank_unit [StrongRankCondition R] (A : (Matrix n n R)ˣ) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/e05ead7993520a432bec94ac504842d90707ad63
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 8535b76e601f11868af3e612fbecb730998a5631
+! leanprover-community/mathlib commit 45ce3929e3bf9a086a216feea3b1ab6c14bf0e67
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -68,7 +68,7 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A ⬝ B).rank ≤ A.rank := by
rw [rank, rank, to_lin'_mul]
- refine' Cardinal.toNat_le_of_le_of_lt_aleph0 _ (LinearMap.rank_comp_le1 _ _)
+ refine' Cardinal.toNat_le_of_le_of_lt_aleph0 _ (LinearMap.rank_comp_le_left _ _)
rw [← Cardinal.lift_lt_aleph0]
have := lift_rank_range_le A.to_lin'
rw [rank_fun', Cardinal.lift_natCast] at this
mathlib commit https://github.com/leanprover-community/mathlib/commit/284fdd2962e67d2932fa3a79ce19fcf92d38e228
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 4cf7ca0e69e048b006674cf4499e5c7d296a89e0
+! leanprover-community/mathlib commit 8535b76e601f11868af3e612fbecb730998a5631
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -24,7 +24,6 @@ This definition does not depend on the choice of basis, see `matrix.rank_eq_finr
## TODO
* Show that `matrix.rank` is equal to the row-rank and column-rank
-* Generalize away from fields
-/
@@ -35,53 +34,57 @@ namespace Matrix
open FiniteDimensional
-variable {m n o K : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
+variable {m n o R : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
-variable [DecidableEq n] [DecidableEq o] [Field K]
-
-variable (A : Matrix m n K)
+variable [DecidableEq n] [DecidableEq o] [CommRing R]
/-- The rank of a matrix is the rank of its image. -/
-noncomputable def rank : ℕ :=
- finrank K A.toLin'.range
+noncomputable def rank (A : Matrix m n R) : ℕ :=
+ finrank R A.toLin'.range
#align matrix.rank Matrix.rank
@[simp]
-theorem rank_one : rank (1 : Matrix n n K) = Fintype.card n := by
+theorem rank_one [StrongRankCondition R] : rank (1 : Matrix n n R) = Fintype.card n := by
rw [rank, to_lin'_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
@[simp]
-theorem rank_zero : rank (0 : Matrix n n K) = 0 := by
+theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
rw [rank, LinearEquiv.map_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
-theorem rank_le_card_width : A.rank ≤ Fintype.card n :=
+theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
by
- convert le_of_add_le_left A.to_lin'.finrank_range_add_finrank_ker.le
- exact (finrank_pi K).symm
+ haveI : Module.Finite R (n → R) := Module.Finite.pi
+ haveI : Module.Free R (n → R) := Module.Free.pi _ _
+ exact A.to_lin'.finrank_range_le.trans_eq (finrank_pi _)
#align matrix.rank_le_card_width Matrix.rank_le_card_width
-theorem rank_le_width {m n : ℕ} (A : Matrix (Fin m) (Fin n) K) : A.rank ≤ n :=
+theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
+ A.rank ≤ n :=
A.rank_le_card_width.trans <| (Fintype.card_fin n).le
#align matrix.rank_le_width Matrix.rank_le_width
-theorem rank_mul_le (B : Matrix n o K) : (A ⬝ B).rank ≤ A.rank :=
- by
- refine' LinearMap.finrank_le_finrank_of_injective (Submodule.ofLe_injective _)
- rw [to_lin'_mul]
- exact LinearMap.range_comp_le_range _ _
+theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
+ (A ⬝ B).rank ≤ A.rank := by
+ rw [rank, rank, to_lin'_mul]
+ refine' Cardinal.toNat_le_of_le_of_lt_aleph0 _ (LinearMap.rank_comp_le1 _ _)
+ rw [← Cardinal.lift_lt_aleph0]
+ have := lift_rank_range_le A.to_lin'
+ rw [rank_fun', Cardinal.lift_natCast] at this
+ exact this.trans_lt (Cardinal.nat_lt_aleph0 (Fintype.card n))
#align matrix.rank_mul_le Matrix.rank_mul_le
-theorem rank_unit (A : (Matrix n n K)ˣ) : (A : Matrix n n K).rank = Fintype.card n :=
+theorem rank_unit [StrongRankCondition R] (A : (Matrix n n R)ˣ) :
+ (A : Matrix n n R).rank = Fintype.card n :=
by
refine' le_antisymm (rank_le_card_width A) _
- have := rank_mul_le (A : Matrix n n K) (↑A⁻¹ : Matrix n n K)
+ have := rank_mul_le (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
-theorem rank_of_isUnit (A : Matrix n n K) (h : IsUnit A) : A.rank = Fintype.card n :=
- by
+theorem rank_of_isUnit [StrongRankCondition R] (A : Matrix n n R) (h : IsUnit A) :
+ A.rank = Fintype.card n := by
obtain ⟨A, rfl⟩ := h
exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
@@ -89,12 +92,12 @@ theorem rank_of_isUnit (A : Matrix n n K) (h : IsUnit A) : A.rank = Fintype.card
include m_fin
theorem rank_eq_finrank_range_toLin {M₁ M₂ : Type _} [AddCommGroup M₁] [AddCommGroup M₂]
- [Module K M₁] [Module K M₂] (v₁ : Basis m K M₁) (v₂ : Basis n K M₂) :
- A.rank = finrank K (toLin v₂ v₁ A).range :=
+ [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁) (v₂ : Basis n R M₂) :
+ A.rank = finrank R (toLin v₂ v₁ A).range :=
by
- let e₁ := (Pi.basisFun K m).Equiv v₁ (Equiv.refl _)
- let e₂ := (Pi.basisFun K n).Equiv v₂ (Equiv.refl _)
- have range_e₂ : (e₂ : (n → K) →ₗ[K] M₂).range = ⊤ :=
+ let e₁ := (Pi.basisFun R m).Equiv v₁ (Equiv.refl _)
+ let e₂ := (Pi.basisFun R n).Equiv v₂ (Equiv.refl _)
+ have range_e₂ : (e₂ : (n → R) →ₗ[R] M₂).range = ⊤ :=
by
rw [LinearMap.range_eq_top]
exact e₂.surjective
@@ -104,21 +107,25 @@ theorem rank_eq_finrank_range_toLin {M₁ M₂ : Type _} [AddCommGroup M₁] [Ad
apply LinearMap.pi_ext'
rintro i
apply LinearMap.ext_ring
- have aux₁ := to_lin_self (Pi.basisFun K n) (Pi.basisFun K m) A i
- have aux₂ := Basis.equiv_apply (Pi.basisFun K n) i v₂
+ have aux₁ := to_lin_self (Pi.basisFun R n) (Pi.basisFun R m) A i
+ have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
rw [to_lin_eq_to_lin'] at aux₁
rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, e₁, e₂, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, to_lin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
-theorem rank_le_card_height : A.rank ≤ Fintype.card m :=
- (Submodule.finrank_le _).trans (finrank_pi K).le
+theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
+ by
+ haveI : Module.Finite R (m → R) := Module.Finite.pi
+ haveI : Module.Free R (m → R) := Module.Free.pi _ _
+ exact (Submodule.finrank_le _).trans (finrank_pi R).le
#align matrix.rank_le_card_height Matrix.rank_le_card_height
omit m_fin
-theorem rank_le_height {m n : ℕ} (A : Matrix (Fin m) (Fin n) K) : A.rank ≤ m :=
+theorem rank_le_height [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (Fin n) R) :
+ A.rank ≤ m :=
A.rank_le_card_height.trans <| (Fintype.card_fin m).le
#align matrix.rank_le_height Matrix.rank_le_height
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a4df69ca1a9a0e5e26bfe12e2b92814216016d0
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin
! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit bf2a9e0156cc11bf44893ea1b4b2da8ae655c901
+! leanprover-community/mathlib commit 4cf7ca0e69e048b006674cf4499e5c7d296a89e0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -48,7 +48,7 @@ noncomputable def rank : ℕ :=
@[simp]
theorem rank_one : rank (1 : Matrix n n K) = Fintype.card n := by
- rw [rank, to_lin'_one, LinearMap.range_id, finrank_top, Module.Free.finrank_pi]
+ rw [rank, to_lin'_one, LinearMap.range_id, finrank_top, finrank_pi]
#align matrix.rank_one Matrix.rank_one
@[simp]
@@ -59,7 +59,7 @@ theorem rank_zero : rank (0 : Matrix n n K) = 0 := by
theorem rank_le_card_width : A.rank ≤ Fintype.card n :=
by
convert le_of_add_le_left A.to_lin'.finrank_range_add_finrank_ker.le
- exact (Module.Free.finrank_pi K).symm
+ exact (finrank_pi K).symm
#align matrix.rank_le_card_width Matrix.rank_le_card_width
theorem rank_le_width {m n : ℕ} (A : Matrix (Fin m) (Fin n) K) : A.rank ≤ n :=
@@ -113,7 +113,7 @@ theorem rank_eq_finrank_range_toLin {M₁ M₂ : Type _} [AddCommGroup M₁] [Ad
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
theorem rank_le_card_height : A.rank ≤ Fintype.card m :=
- (Submodule.finrank_le _).trans (Module.Free.finrank_pi K).le
+ (Submodule.finrank_le _).trans (finrank_pi K).le
#align matrix.rank_le_card_height Matrix.rank_le_card_height
omit m_fin
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Fintype
/Finite
(#11734)
Also drop a no longer needed [DecidableEq _]
argument in 1 lemma.
It was needed to generate a computable Fintype (Set.range _)
instance
but a Finite
instance doesn't need it.
@@ -34,7 +34,7 @@ namespace Matrix
open FiniteDimensional
-variable {l m n o R : Type*} [m_fin : Fintype m] [Fintype n] [Fintype o]
+variable {l m n o R : Type*} [Fintype n] [Fintype o]
section CommRing
@@ -74,11 +74,11 @@ theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix
exact Cardinal.toNat_le_toNat (LinearMap.rank_comp_le_left _ _) (rank_lt_aleph0 _ _)
#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
-theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
+theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A * B).rank ≤ B.rank := by
rw [rank, rank, mulVecLin_mul]
- exact
- finrank_le_finrank_of_rank_le_rank (LinearMap.lift_rank_comp_le_right _ _) (rank_lt_aleph0 _ _)
+ exact finrank_le_finrank_of_rank_le_rank (LinearMap.lift_rank_comp_le_right _ _)
+ (rank_lt_aleph0 _ _)
#align matrix.rank_mul_le_right Matrix.rank_mul_le_right
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
@@ -110,7 +110,7 @@ lemma rank_mul_eq_left_of_isUnit_det [DecidableEq n]
exact ⟨(A⁻¹).mulVecLin v, by simp [mul_nonsing_inv _ hA]⟩
/-- Left multiplying by an invertible matrix does not change the rank -/
-lemma rank_mul_eq_right_of_isUnit_det [DecidableEq m]
+lemma rank_mul_eq_right_of_isUnit_det [Fintype m] [DecidableEq m]
(A : Matrix m m R) (B : Matrix m n R) (hA : IsUnit A.det) :
(A * B).rank = B.rank := by
let b : Basis m R (m → R) := Pi.basisFun R m
@@ -140,9 +140,10 @@ theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
simpa only [reindex_apply] using rank_reindex e₁.symm e₂.symm A
#align matrix.rank_submatrix Matrix.rank_submatrix
-theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type*} [AddCommGroup M₁]
+theorem rank_eq_finrank_range_toLin [Finite m] [DecidableEq n] {M₁ M₂ : Type*} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
(v₂ : Basis n R M₂) : A.rank = finrank R (LinearMap.range (toLin v₂ v₁ A)) := by
+ cases nonempty_fintype m
let e₁ := (Pi.basisFun R m).equiv v₁ (Equiv.refl _)
let e₂ := (Pi.basisFun R n).equiv v₂ (Equiv.refl _)
have range_e₂ : LinearMap.range e₂ = ⊤ := by
@@ -162,7 +163,7 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type*} [AddComm
LinearMap.coe_single, toLin_self, map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
-theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) :
+theorem rank_le_card_height [Fintype m] [StrongRankCondition R] (A : Matrix m n R) :
A.rank ≤ Fintype.card m := by
haveI : Module.Finite R (m → R) := Module.Finite.pi
haveI : Module.Free R (m → R) := Module.Free.pi _ _
@@ -186,7 +187,7 @@ section Field
variable [Field R]
/-- The rank of a diagnonal matrix is the count of non-zero elements on its main diagonal -/
-theorem rank_diagonal [DecidableEq m] [DecidableEq R] (w : m → R) :
+theorem rank_diagonal [Fintype m] [DecidableEq m] [DecidableEq R] (w : m → R) :
(diagonal w).rank = Fintype.card {i // (w i) ≠ 0} := by
rw [Matrix.rank, ← Matrix.toLin'_apply', FiniteDimensional.finrank, ← LinearMap.rank,
LinearMap.rank_diagonal, Cardinal.toNat_natCast]
StarOrderedRing
a mixin (#11872)
This makes StarOrderedRing
take StarRing
as a parameter instead of extending it, and as a result moves the typeclass to Prop
. It was already a mixin with respect to the order and algebraic structure. There are two primary motivations:
C(α, R)
is a StarOrderedRing
with [StarOrderedRing C(α, R)]
, as currently there is no typeclass on R
which would naturally guarantee this property. This is relevant as we want this type class on continuous functions for the continuous functional calculus.StarOrderedRing
instance on C(α, A)
where A
is a complex (or even real) C⋆-algebra, and making this a mixin avoids loops with StarRing
.@@ -209,7 +209,7 @@ be replaced with a proof that uses Gaussian reduction or argues via linear combi
section StarOrderedField
-variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
+variable [Fintype m] [Field R] [PartialOrder R] [StarRing R] [StarOrderedRing R]
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ * A).mulVecLin = LinearMap.ker (mulVecLin A) := by
@@ -158,7 +158,7 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type*} [AddComm
have aux₂ := Basis.equiv_apply (Pi.basisFun R n) i v₂
rw [toLin_eq_toLin', toLin'_apply'] at aux₁
rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
- simp only [LinearMap.comp_apply, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
+ simp only [e₁, e₁, LinearMap.comp_apply, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
LinearMap.coe_single, toLin_self, map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -103,9 +103,9 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
lemma rank_mul_eq_left_of_isUnit_det [DecidableEq n]
(A : Matrix n n R) (B : Matrix m n R) (hA : IsUnit A.det) :
(B * A).rank = B.rank := by
- suffices : Function.Surjective A.mulVecLin
- · rw [rank, mulVecLin_mul, LinearMap.range_comp_of_range_eq_top _
- (LinearMap.range_eq_top.mpr this), ← rank]
+ suffices Function.Surjective A.mulVecLin by
+ rw [rank, mulVecLin_mul, LinearMap.range_comp_of_range_eq_top _
+ (LinearMap.range_eq_top.mpr this), ← rank]
intro v
exact ⟨(A⁻¹).mulVecLin v, by simp [mul_nonsing_inv _ hA]⟩
toNat
and toPartENat
(#10472)
Redefine these operations in terms of toENat
.
@@ -71,7 +71,7 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
(A * B).rank ≤ A.rank := by
rw [rank, rank, mulVecLin_mul]
- exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph0 _ _) (LinearMap.rank_comp_le_left _ _)
+ exact Cardinal.toNat_le_toNat (LinearMap.rank_comp_le_left _ _) (rank_lt_aleph0 _ _)
#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
@@ -189,7 +189,7 @@ variable [Field R]
theorem rank_diagonal [DecidableEq m] [DecidableEq R] (w : m → R) :
(diagonal w).rank = Fintype.card {i // (w i) ≠ 0} := by
rw [Matrix.rank, ← Matrix.toLin'_apply', FiniteDimensional.finrank, ← LinearMap.rank,
- LinearMap.rank_diagonal, Cardinal.toNat_cast]
+ LinearMap.rank_diagonal, Cardinal.toNat_natCast]
end Field
rank
and finrank
. (#9349)
The files Mathlib.LinearAlgebra.FreeModule.Rank
, Mathlib.LinearAlgebra.FreeModule.Finite.Rank
, Mathlib.LinearAlgebra.Dimension
and Mathlib.LinearAlgebra.Finrank
were reorganized into a
folder Mathlib.LinearAlgebra.Dimension
, containing the following files
Basic.lean
: Contains the definition of Module.rank
.Finrank.lean
: Contains the definition of FiniteDimensional.finrank
.StrongRankCondition.lean
: Contains results about rank
and finrank
over rings satisfying strong rank conditionFree.lean
: Contains results about rank
and finrank
of free modulesFinite.lean
: Contains conditions or consequences for rank
to be finite or zeroConstructions.lean
: Contains the calculation of the rank
of various constructions.DivisionRing.lean
: Contains results about rank
and finrank
of spaces over division rings.LinearMap.lean
: Contains results about LinearMap.rank
API changes:
IsNoetherian.rank_lt_aleph0
and FiniteDimensional.rank_lt_aleph0
are replaced with
rank_lt_aleph0
.
Module.Free.finite_basis
was renamed to Module.Finite.finite_basis
.
FiniteDimensional.finrank_eq_rank
was renamed to finrank_eq_rank
.
rank_eq_cardinal_basis
and rank_eq_cardinal_basis'
were removed
in favour of Basis.mk_eq_mk
and Basis.mk_eq_mk''
.
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
@@ -3,13 +3,9 @@ Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Eric Wieser
-/
-import Mathlib.LinearAlgebra.FreeModule.Finite.Rank
-import Mathlib.LinearAlgebra.Matrix.ToLin
-import Mathlib.LinearAlgebra.FiniteDimensional
import Mathlib.LinearAlgebra.Matrix.DotProduct
import Mathlib.LinearAlgebra.Determinant
import Mathlib.LinearAlgebra.Matrix.Diagonal
-import Mathlib.Data.Complex.Module
#align_import data.matrix.rank from "leanprover-community/mathlib"@"17219820a8aa8abe85adf5dfde19af1dd1bd8ae7"
_root_.map_sum
more consistently (#7189)
Also _root_.map_smul
when in the neighbourhood.
@@ -163,7 +163,7 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type*} [AddComm
rw [toLin_eq_toLin', toLin'_apply'] at aux₁
rw [Pi.basisFun_apply, LinearMap.coe_stdBasis] at aux₁ aux₂
simp only [LinearMap.comp_apply, LinearEquiv.coe_coe, Equiv.refl_apply, aux₁, aux₂,
- LinearMap.coe_single, toLin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
+ LinearMap.coe_single, toLin_self, map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) :
This generalizes two results about vectors to matrices:
dotProduct_star_self_eq_zero
to conjTranspose_mul_self_eq_zero
dotProduct_self_star_eq_zero
to self_mul_conjTranspose_eq_zero
It also adds lemmas linking the kernel (under left-multiplication, right-multiplication, vecMul
, and mulVec
) of $A$, $A^HA$, and $AA^H$.
Some of these lemmas are used in the SVD decomposition theorem of R or C matrices #6042
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -218,16 +218,7 @@ variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
LinearMap.ker (Aᴴ * A).mulVecLin = LinearMap.ker (mulVecLin A) := by
ext x
- simp only [LinearMap.mem_ker, mulVecLin_apply, ← mulVec_mulVec]
- constructor
- · intro h
- replace h := congr_arg (dotProduct (star x)) h
- haveI : NoZeroDivisors R := inferInstance
- rwa [dotProduct_mulVec, dotProduct_zero, vecMul_conjTranspose, star_star,
- -- Porting note: couldn't find `NoZeroDivisors R` instance.
- @dotProduct_star_self_eq_zero R _ _ _ _ _ ‹_›] at h
- · intro h
- rw [h, mulVec_zero]
+ simp only [LinearMap.mem_ker, mulVecLin_apply, conjTranspose_mul_self_mulVec_eq_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ * A).rank = A.rank := by
⬝
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).
@@ -73,20 +73,20 @@ theorem rank_le_width [StrongRankCondition R] {m n : ℕ} (A : Matrix (Fin m) (F
#align matrix.rank_le_width Matrix.rank_le_width
theorem rank_mul_le_left [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
- (A ⬝ B).rank ≤ A.rank := by
+ (A * B).rank ≤ A.rank := by
rw [rank, rank, mulVecLin_mul]
exact Cardinal.toNat_le_of_le_of_lt_aleph0 (rank_lt_aleph0 _ _) (LinearMap.rank_comp_le_left _ _)
#align matrix.rank_mul_le_left Matrix.rank_mul_le_left
theorem rank_mul_le_right [StrongRankCondition R] (A : Matrix l m R) (B : Matrix m n R) :
- (A ⬝ B).rank ≤ B.rank := by
+ (A * B).rank ≤ B.rank := by
rw [rank, rank, mulVecLin_mul]
exact
finrank_le_finrank_of_rank_le_rank (LinearMap.lift_rank_comp_le_right _ _) (rank_lt_aleph0 _ _)
#align matrix.rank_mul_le_right Matrix.rank_mul_le_right
theorem rank_mul_le [StrongRankCondition R] (A : Matrix m n R) (B : Matrix n o R) :
- (A ⬝ B).rank ≤ min A.rank B.rank :=
+ (A * B).rank ≤ min A.rank B.rank :=
le_min (rank_mul_le_left _ _) (rank_mul_le_right _ _)
#align matrix.rank_mul_le Matrix.rank_mul_le
@@ -94,7 +94,7 @@ theorem rank_unit [StrongRankCondition R] [DecidableEq n] (A : (Matrix n n R)ˣ)
(A : Matrix n n R).rank = Fintype.card n := by
refine' le_antisymm (rank_le_card_width A) _
have := rank_mul_le_left (A : Matrix n n R) (↑A⁻¹ : Matrix n n R)
- rwa [← mul_eq_mul, ← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
+ rwa [← Units.val_mul, mul_inv_self, Units.val_one, rank_one] at this
#align matrix.rank_unit Matrix.rank_unit
theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R) (h : IsUnit A) :
@@ -106,7 +106,7 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
/-- Right multiplying by an invertible matrix does not change the rank -/
lemma rank_mul_eq_left_of_isUnit_det [DecidableEq n]
(A : Matrix n n R) (B : Matrix m n R) (hA : IsUnit A.det) :
- (B ⬝ A).rank = B.rank := by
+ (B * A).rank = B.rank := by
suffices : Function.Surjective A.mulVecLin
· rw [rank, mulVecLin_mul, LinearMap.range_comp_of_range_eq_top _
(LinearMap.range_eq_top.mpr this), ← rank]
@@ -116,11 +116,11 @@ lemma rank_mul_eq_left_of_isUnit_det [DecidableEq n]
/-- Left multiplying by an invertible matrix does not change the rank -/
lemma rank_mul_eq_right_of_isUnit_det [DecidableEq m]
(A : Matrix m m R) (B : Matrix m n R) (hA : IsUnit A.det) :
- (A ⬝ B).rank = B.rank := by
+ (A * B).rank = B.rank := by
let b : Basis m R (m → R) := Pi.basisFun R m
replace hA : IsUnit (LinearMap.toMatrix b b A.mulVecLin).det := by
convert hA; rw [← LinearEquiv.eq_symm_apply]; rfl
- have hAB : mulVecLin (A ⬝ B) = (LinearEquiv.ofIsUnitDet hA).comp (mulVecLin B) := by ext; simp
+ have hAB : mulVecLin (A * B) = (LinearEquiv.ofIsUnitDet hA).comp (mulVecLin B) := by ext; simp
rw [rank, rank, hAB, LinearMap.range_comp, LinearEquiv.finrank_map_eq]
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
@@ -216,7 +216,7 @@ section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
- LinearMap.ker (Aᴴ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) := by
+ LinearMap.ker (Aᴴ * A).mulVecLin = LinearMap.ker (mulVecLin A) := by
ext x
simp only [LinearMap.mem_ker, mulVecLin_apply, ← mulVec_mulVec]
constructor
@@ -230,12 +230,12 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
rw [h, mulVec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
-theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank := by
+theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ * A).rank = A.rank := by
dsimp only [rank]
refine' add_left_injective (finrank R (LinearMap.ker (mulVecLin A))) _
dsimp only
- trans finrank R { x // x ∈ LinearMap.range (mulVecLin (Aᴴ ⬝ A)) } +
- finrank R { x // x ∈ LinearMap.ker (mulVecLin (Aᴴ ⬝ A)) }
+ trans finrank R { x // x ∈ LinearMap.range (mulVecLin (Aᴴ * A)) } +
+ finrank R { x // x ∈ LinearMap.ker (mulVecLin (Aᴴ * A)) }
· rw [ker_mulVecLin_conjTranspose_mul_self]
· simp only [LinearMap.finrank_range_add_finrank_ker]
#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
@@ -251,7 +251,7 @@ theorem rank_conjTranspose (A : Matrix m n R) : Aᴴ.rank = A.rank :=
#align matrix.rank_conj_transpose Matrix.rank_conjTranspose
@[simp]
-theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A ⬝ Aᴴ).rank = A.rank := by
+theorem rank_self_mul_conjTranspose (A : Matrix m n R) : (A * Aᴴ).rank = A.rank := by
simpa only [rank_conjTranspose, conjTranspose_conjTranspose] using
rank_conjTranspose_mul_self Aᴴ
#align matrix.rank_self_mul_conj_transpose Matrix.rank_self_mul_conjTranspose
@@ -263,7 +263,7 @@ section LinearOrderedField
variable [Fintype m] [LinearOrderedField R]
theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
- LinearMap.ker (Aᵀ ⬝ A).mulVecLin = LinearMap.ker (mulVecLin A) := by
+ LinearMap.ker (Aᵀ * A).mulVecLin = LinearMap.ker (mulVecLin A) := by
ext x
simp only [LinearMap.mem_ker, mulVecLin_apply, ← mulVec_mulVec]
constructor
@@ -274,12 +274,12 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
rw [h, mulVec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
-theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank := by
+theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ * A).rank = A.rank := by
dsimp only [rank]
refine' add_left_injective (finrank R <| LinearMap.ker A.mulVecLin) _
dsimp only
- trans finrank R { x // x ∈ LinearMap.range (mulVecLin (Aᵀ ⬝ A)) } +
- finrank R { x // x ∈ LinearMap.ker (mulVecLin (Aᵀ ⬝ A)) }
+ trans finrank R { x // x ∈ LinearMap.range (mulVecLin (Aᵀ * A)) } +
+ finrank R { x // x ∈ LinearMap.ker (mulVecLin (Aᵀ * A)) }
· rw [ker_mulVecLin_transpose_mul_self]
· simp only [LinearMap.finrank_range_add_finrank_ker]
#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
@@ -292,7 +292,7 @@ theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
#align matrix.rank_transpose Matrix.rank_transpose
@[simp]
-theorem rank_self_mul_transpose (A : Matrix m n R) : (A ⬝ Aᵀ).rank = A.rank := by
+theorem rank_self_mul_transpose (A : Matrix m n R) : (A * Aᵀ).rank = A.rank := by
simpa only [rank_transpose, transpose_transpose] using rank_transpose_mul_self Aᵀ
#align matrix.rank_self_mul_transpose Matrix.rank_self_mul_transpose
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -38,7 +38,7 @@ namespace Matrix
open FiniteDimensional
-variable {l m n o R : Type _} [m_fin : Fintype m] [Fintype n] [Fintype o]
+variable {l m n o R : Type*} [m_fin : Fintype m] [Fintype n] [Fintype o]
section CommRing
@@ -144,7 +144,7 @@ theorem rank_submatrix [Fintype m] (A : Matrix m m R) (e₁ e₂ : n ≃ m) :
simpa only [reindex_apply] using rank_reindex e₁.symm e₂.symm A
#align matrix.rank_submatrix Matrix.rank_submatrix
-theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCommGroup M₁]
+theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type*} [AddCommGroup M₁]
[AddCommGroup M₂] [Module R M₁] [Module R M₂] (A : Matrix m n R) (v₁ : Basis m R M₁)
(v₂ : Basis n R M₂) : A.rank = finrank R (LinearMap.range (toLin v₂ v₁ A)) := by
let e₁ := (Pi.basisFun R m).equiv v₁ (Equiv.refl _)
This PR provides the lemmas:
IsHermitian.spectral_theorem'
: a slightly modified spectral_theorem such that the hermitian matrix can be directly replaced.
$$A = VDV^{-1}\quad D = \text{diag}(d)$$IsHermitian.rank_eq_count_non_zero_eigs
: the rank of a hermitian matrix is the number of non-zero eigenvalues of that matrix
$$\text{rank}(A) = \text{card} \lbrace \quad i \quad | \quad d_i \neq 0 \rbrace$$IsHermitian.rank_eq_rank_diagonal
: the rank of a hermitian matrix is the same as its rank after diagonalization by the eigenvector matrix
$$\text{rank}(A) = \text{rank}(D)$$Matrix.rank_diagonal
: the rank of a diagonal matrix is the number of non-zero diagonal elements. Note that this was previously the name of a lemma about LinearMaps we take that name (but keep the align to avoid disrupting the tooling).
$$\text{rank}(V) = \text{Diag}(v) \implies \text{rank}(V) = \text{card} \lbrace \quad i \quad | \quad v_i \neq 0 \rbrace$$LinearMap.rank_diagonal
: the rank of a linear map that is formed from a diagonal matrix is the number of non-zero diagonal entries. This was previously called Matrix.rank_diagonal
.Co-authored-by: Mohanad Ahmed <m.a.m.elhassan@gmail.com>
@@ -8,6 +8,7 @@ import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.LinearAlgebra.FiniteDimensional
import Mathlib.LinearAlgebra.Matrix.DotProduct
import Mathlib.LinearAlgebra.Determinant
+import Mathlib.LinearAlgebra.Matrix.Diagonal
import Mathlib.Data.Complex.Module
#align_import data.matrix.rank from "leanprover-community/mathlib"@"17219820a8aa8abe85adf5dfde19af1dd1bd8ae7"
@@ -184,6 +185,18 @@ theorem rank_eq_finrank_span_cols (A : Matrix m n R) :
end CommRing
+section Field
+
+variable [Field R]
+
+/-- The rank of a diagnonal matrix is the count of non-zero elements on its main diagonal -/
+theorem rank_diagonal [DecidableEq m] [DecidableEq R] (w : m → R) :
+ (diagonal w).rank = Fintype.card {i // (w i) ≠ 0} := by
+ rw [Matrix.rank, ← Matrix.toLin'_apply', FiniteDimensional.finrank, ← LinearMap.rank,
+ LinearMap.rank_diagonal, Cardinal.toNat_cast]
+
+end Field
+
/-! ### Lemmas about transpose and conjugate transpose
This section contains lemmas about the rank of `Matrix.transpose` and `Matrix.conjTranspose`.
@@ -198,7 +211,6 @@ proof that is a simple consequence of `Matrix.rank_transpose_mul_self` and
be replaced with a proof that uses Gaussian reduction or argues via linear combinations.
-/
-
section StarOrderedField
variable [Fintype m] [Field R] [PartialOrder R] [StarOrderedRing R]
This PR provides two lemmas:
Matrix.rank_mul_eq_left_of_isUnit_det
in a commutative ring R post multiplication (multiplication from the right) by an invertible matrix does not change the rank of a matrix. With $A$ an invertible matrix:
$$\text{rank}(BA) = \text{rank}(B)$$
Matrix.rank_mul_eq_right_of_isUnit_det
in a commutative ring R pre-multiplication (multiplication from the left) by an invertible matrix does not change the rank of a matrix. With $A$ an invertible matrix:
$$\text{rank}(AB) = \text{rank}(B)$$
Co-authored-by: Mohanad Ahmed <m.a.m.elhassan@gmail.com>
Co-authored-by: Oliver Nash <github@olivernash.org> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -1,12 +1,13 @@
/-
Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Johan Commelin, Eric Wieer
+Authors: Johan Commelin, Eric Wieser
-/
import Mathlib.LinearAlgebra.FreeModule.Finite.Rank
import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.LinearAlgebra.FiniteDimensional
import Mathlib.LinearAlgebra.Matrix.DotProduct
+import Mathlib.LinearAlgebra.Determinant
import Mathlib.Data.Complex.Module
#align_import data.matrix.rank from "leanprover-community/mathlib"@"17219820a8aa8abe85adf5dfde19af1dd1bd8ae7"
@@ -101,6 +102,26 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
+/-- Right multiplying by an invertible matrix does not change the rank -/
+lemma rank_mul_eq_left_of_isUnit_det [DecidableEq n]
+ (A : Matrix n n R) (B : Matrix m n R) (hA : IsUnit A.det) :
+ (B ⬝ A).rank = B.rank := by
+ suffices : Function.Surjective A.mulVecLin
+ · rw [rank, mulVecLin_mul, LinearMap.range_comp_of_range_eq_top _
+ (LinearMap.range_eq_top.mpr this), ← rank]
+ intro v
+ exact ⟨(A⁻¹).mulVecLin v, by simp [mul_nonsing_inv _ hA]⟩
+
+/-- Left multiplying by an invertible matrix does not change the rank -/
+lemma rank_mul_eq_right_of_isUnit_det [DecidableEq m]
+ (A : Matrix m m R) (B : Matrix m n R) (hA : IsUnit A.det) :
+ (A ⬝ B).rank = B.rank := by
+ let b : Basis m R (m → R) := Pi.basisFun R m
+ replace hA : IsUnit (LinearMap.toMatrix b b A.mulVecLin).det := by
+ convert hA; rw [← LinearEquiv.eq_symm_apply]; rfl
+ have hAB : mulVecLin (A ⬝ B) = (LinearEquiv.ofIsUnitDet hA).comp (mulVecLin B) := by ext; simp
+ rw [rank, rank, hAB, LinearMap.range_comp, LinearEquiv.finrank_map_eq]
+
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
(A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A := by
@@ -2,11 +2,6 @@
Copyright (c) 2021 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Eric Wieer
-
-! This file was ported from Lean 3 source module data.matrix.rank
-! leanprover-community/mathlib commit 17219820a8aa8abe85adf5dfde19af1dd1bd8ae7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.LinearAlgebra.FreeModule.Finite.Rank
import Mathlib.LinearAlgebra.Matrix.ToLin
@@ -14,6 +9,8 @@ import Mathlib.LinearAlgebra.FiniteDimensional
import Mathlib.LinearAlgebra.Matrix.DotProduct
import Mathlib.Data.Complex.Module
+#align_import data.matrix.rank from "leanprover-community/mathlib"@"17219820a8aa8abe85adf5dfde19af1dd1bd8ae7"
+
/-!
# Rank of matrices
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -176,7 +176,7 @@ not linearly ordered. For now we don't prove the transpose case for `ℂ`.
TODO: the lemmas `Matrix.rank_transpose` and `Matrix.rank_conjTranspose` current follow a short
proof that is a simple consequence of `Matrix.rank_transpose_mul_self` and
-`Matrix.rank_conjTranspose_mul_self`. This proof pulls in unecessary assumptions on `R`, and should
+`Matrix.rank_conjTranspose_mul_self`. This proof pulls in unnecessary assumptions on `R`, and should
be replaced with a proof that uses Gaussian reduction or argues via linear combinations.
-/
@@ -171,7 +171,7 @@ end CommRing
This section contains lemmas about the rank of `Matrix.transpose` and `Matrix.conjTranspose`.
Unfortunately the proofs are essentially duplicated between the two; `ℚ` is a linearly-ordered ring
-but can't be a star-ordered ring, while `ℂ` is star-ordered (with `open_locale complex_order`) but
+but can't be a star-ordered ring, while `ℂ` is star-ordered (with `open ComplexOrder`) but
not linearly ordered. For now we don't prove the transpose case for `ℂ`.
TODO: the lemmas `Matrix.rank_transpose` and `Matrix.rank_conjTranspose` current follow a short
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -61,7 +61,6 @@ theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
rw [rank, mulVecLin_zero, LinearMap.range_zero, finrank_bot]
#align matrix.rank_zero Matrix.rank_zero
-set_option synthInstance.etaExperiment true in
theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) :
A.rank ≤ Fintype.card n := by
haveI : Module.Finite R (n → R) := Module.Finite.pi
@@ -105,7 +104,6 @@ theorem rank_of_isUnit [StrongRankCondition R] [DecidableEq n] (A : Matrix n n R
exact rank_unit A
#align matrix.rank_of_is_unit Matrix.rank_of_isUnit
-set_option synthInstance.etaExperiment true in
/-- Taking a subset of the rows and permuting the columns reduces the rank. -/
theorem rank_submatrix_le [StrongRankCondition R] [Fintype m] (f : n → m) (e : n ≃ m)
(A : Matrix m m R) : rank (A.submatrix f e) ≤ rank A := by
@@ -149,7 +147,6 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
LinearMap.coe_single, toLin_self, LinearEquiv.map_sum, LinearEquiv.map_smul, Basis.equiv_apply]
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
-set_option synthInstance.etaExperiment true in
theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) :
A.rank ≤ Fintype.card m := by
haveI : Module.Finite R (m → R) := Module.Finite.pi
@@ -203,9 +200,6 @@ theorem ker_mulVecLin_conjTranspose_mul_self (A : Matrix m n R) :
rw [h, mulVec_zero]
#align matrix.ker_mul_vec_lin_conj_transpose_mul_self Matrix.ker_mulVecLin_conjTranspose_mul_self
--- Porting note: using `LinearMap.finrank_range_add_finrank_ker` is very slow
-set_option synthInstance.etaExperiment true in
-set_option maxHeartbeats 300000 in
theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.rank := by
dsimp only [rank]
refine' add_left_injective (finrank R (LinearMap.ker (mulVecLin A))) _
@@ -216,7 +210,6 @@ theorem rank_conjTranspose_mul_self (A : Matrix m n R) : (Aᴴ ⬝ A).rank = A.r
· simp only [LinearMap.finrank_range_add_finrank_ker]
#align matrix.rank_conj_transpose_mul_self Matrix.rank_conjTranspose_mul_self
-set_option synthInstance.etaExperiment true in
-- this follows the proof here https://math.stackexchange.com/a/81903/1896
/-- TODO: prove this in greater generality. -/
@[simp]
@@ -251,9 +244,6 @@ theorem ker_mulVecLin_transpose_mul_self (A : Matrix m n R) :
rw [h, mulVec_zero]
#align matrix.ker_mul_vec_lin_transpose_mul_self Matrix.ker_mulVecLin_transpose_mul_self
--- Porting note: using `LinearMap.finrank_range_add_finrank_ker` is very slow
-set_option synthInstance.etaExperiment true in
-set_option maxHeartbeats 300000 in
theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank := by
dsimp only [rank]
refine' add_left_injective (finrank R <| LinearMap.ker A.mulVecLin) _
@@ -264,7 +254,6 @@ theorem rank_transpose_mul_self (A : Matrix m n R) : (Aᵀ ⬝ A).rank = A.rank
· simp only [LinearMap.finrank_range_add_finrank_ker]
#align matrix.rank_transpose_mul_self Matrix.rank_transpose_mul_self
-set_option synthInstance.etaExperiment true in
/-- TODO: prove this in greater generality. -/
@[simp]
theorem rank_transpose (A : Matrix m n R) : Aᵀ.rank = A.rank :=
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -62,8 +62,8 @@ theorem rank_zero [Nontrivial R] : rank (0 : Matrix m n R) = 0 := by
#align matrix.rank_zero Matrix.rank_zero
set_option synthInstance.etaExperiment true in
-theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card n :=
- by
+theorem rank_le_card_width [StrongRankCondition R] (A : Matrix m n R) :
+ A.rank ≤ Fintype.card n := by
haveI : Module.Finite R (n → R) := Module.Finite.pi
haveI : Module.Free R (n → R) := Module.Free.pi _ _
exact A.mulVecLin.finrank_range_le.trans_eq (finrank_pi _)
@@ -150,8 +150,8 @@ theorem rank_eq_finrank_range_toLin [DecidableEq n] {M₁ M₂ : Type _} [AddCom
#align matrix.rank_eq_finrank_range_to_lin Matrix.rank_eq_finrank_range_toLin
set_option synthInstance.etaExperiment true in
-theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) : A.rank ≤ Fintype.card m :=
- by
+theorem rank_le_card_height [StrongRankCondition R] (A : Matrix m n R) :
+ A.rank ≤ Fintype.card m := by
haveI : Module.Finite R (m → R) := Module.Finite.pi
haveI : Module.Free R (m → R) := Module.Free.pi _ _
exact (Submodule.finrank_le _).trans (finrank_pi R).le
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file